在Python中找出相同大小的字符串的程序

假设我们有一个由小写字母和另一个整数“ j”组成的字符串“ i”。我们必须找出有多少个字符串,这些字符串等于'i'的大小,并且在字典上小于或等于'i'并且没有连续的等于'j'的相等字符。

必须通过找到Mod的结果乘以10 ^ 9 + 7来计算答案。

因此,如果输入像i =“ app”,j = 2,则输出将为405。

在线示例

让我们看下面的实现以更好地理解-

class Solution:
   def solve(self, s, k):
      if k <= 0:
         return 0
      MOD = 10 ** 9 + 7
      n = len(s)
      nums = [ord(char) - ord("a") for char in s]
      def dp(pos, bound, last, count):
         if count > k:
            return 0
         if pos == n:
            return 1
         num = nums[pos]
         res = 0
         for i in range(num + 1 if bound else 26):
            res += dp(pos + 1, bound and i == num, i, count * (i == last) + 1)
         return res
      return dp(0, True, -1, 0) % MOD
ob = Solution()
print(ob.solve('app',2))

输入值

i = "app"
j = 2
输出结果
405

猜你喜欢