在 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
- 如果在 s 的子字符串中从索引 j 到 s 的大小(通过跳过 k-j 个字符)包含 "programmingquestion",则
- 如果 k > j,则
- 针对 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
广告