Python在字符串中查找编程问题

假设我们有一个小写的字符串s,我们必须检查是否有可能选择s中的某些字符子序列,使得− 1.字符的任何两个连续索引的差相同。2.字符形成字符串“ programmingquestion”

因此,如果输入类似于“ pzrzozgzrzazmzmziznzgzqzuzezsztzizozn”,则输出为True

为了解决这个问题,我们将遵循以下步骤-

  • p:=包含p的索引数组

  • r:=包含r的索引数组

  • 对于p中的每个j,

    • 如果k> j,则

    • 返回True

    • 如果从索引j到s大小的s子字符串中的“ programmingquestion”,则跳过kj个字符,则

    • 对于r中的每个k

    • 返回False

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

    示例

    class Solution:
       def solve(self, s):
          p = [i for i, c in enumerate(s) if c == "p"]
          r = [i for i, c in enumerate(s) if c == "r"]
          for j in p:
             for k in r:
                if k > j:
                   if "programmingquestion" in s[j:len(s):k-j]:
                      return True
          return False
    ob = Solution()s = "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"
    print(ob.solve(s))

    输入值

    "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"

    输出结果

    True