Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 문자열의 접미사와 접두사가 회문인지 확인

<시간/>

문자열 s가 있다고 가정하면 문자열 회문이 접두어 및 접미사 하위 문자열인지 여부를 확인해야 합니다.

따라서 입력이 s ="levelishighforracecar"와 같으면 회문 접두어와 접미사가 있으므로 출력은 True가 됩니다. 각각 "level"과 "racecar"입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • l :=s의 크기
  • 2 ~ l + 2 범위의 i에 대해
    • 인덱스 i까지의 s의 부분 문자열이 회문이면
      • 루프에서 나오다
    • i가(l + 1)과 같으면
      • 거짓을 반환
    • 2 ~ l + 2 범위의 i에 대해
      • 인덱스 (l - i)에서 (l - 1)까지 s의 부분 문자열이 회문인 경우
        • 참 반환
    • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시 코드

def is_palindrome(s):
   return s == s[::-1]  
 
def solve(s):
   l = len(s)
   for i in range(2, l + 1):
      if is_palindrome(s[0:i]):
         break
     
   if i == (l + 1):
      return False
 
   for i in range(2, l + 1):
      if is_palindrome(s[l - i : l]):
         return True
     
   return False  

s = "levelishighforracecar"
print(solve(s))

입력

"levelishighforracecar"

출력

True