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


假设我们有一个小写字符串 s,我们要检查是否有可能选取 s 中的一些字符子序列,使得 - 1. 任何两个字符连续索引的差都相同 2. 这些字符构成字符串 "programmingquestion"

所以,如果输入类似于 "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn",则输出将为 True

要解决这个问题,我们将按照以下步骤进行操作 -

  • p:包含出现 p 的索引的数组
  • r:包含出现 r 的索引的数组
  • 针对 p 中的每个 j,执行
    • 针对 r 中的每个 k,执行
      • 如果 k > j,则
        • 如果在 s 的子字符串中从索引 j 到 s 的大小(通过跳过 k-j 个字符)包含 "programmingquestion",则
          • 返回 True
  • 返回 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

更新于: 2020-09-22

135 次浏览

助力 事业

完成课程后获得认证

开始
广告