문자열 s가 있다고 가정합니다. 주어진 문자열이 colindrome인지 확인해야 합니다. 콜린드롬은 6개의 회문이 연결된 문자열입니다.
따라서 입력이 s ="aabbaamnoonm"과 같은 경우 출력은 "aabbaa" 및 "mnoonm"과 같은 회문을 포함하고 둘 다 길이가 6이므로 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- s의 크기가 6의 배수가 아니면
- 거짓을 반환
- 0 ~ s - 1 범위의 i에 대해 6만큼 증가, do
- s[인덱스 i에서 i+5까지]가 회문(palindrome)이 아니면
- 거짓을 반환
- s[인덱스 i에서 i+5까지]가 회문(palindrome)이 아니면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
def is_palindrome(s): return s == s[::-1] def solve(s): if len(s) % 6 != 0: return False for i in range(0, len(s), 6): if not is_palindrome(s[i : i+6]): return False return True s = "aabbaamnoonm" print(solve(s))
입력
"aabbaamnoonm"
출력
True