假设我们有一个小写的字符串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