소문자 문자열 s가 있다고 가정하고 s에서 다음과 같은 문자의 일부 시퀀스를 선택할 수 있는지 확인해야 합니다. 1. 문자의 두 연속 인덱스의 차이는 동일합니다. 피>
따라서 입력이 "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"과 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- p :=p가 있는 인덱스 배열
- r :=r이 있는 인덱스 배열
- p의 각 j에 대해
- r의 각 k에 대해 다음을 수행합니다.
- k> j이면
- k-j 문자를 건너뛰어 인덱스 j에서 s 크기까지 s의 부분 문자열에 "programmingquestion"이 있으면
- 참 반환
- k-j 문자를 건너뛰어 인덱스 j에서 s 크기까지 s의 부분 문자열에 "programmingquestion"이 있으면
- k> j이면
- r의 각 k에 대해 다음을 수행합니다.
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
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