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

파이썬에서 문자열의 두 부분이 회문인지 확인하는 프로그램

<시간/>

길이가 같은 두 개의 스트링 S와 T가 있다고 가정하고, S의 첫 번째 부분과 T의 두 번째 부분이 회문을 형성하도록 두 스트링을 공통 지점에서 절단할 수 있는지 확인해야 합니다.

따라서 입력이 S ="cat" T ="pac"과 같으면 출력은 True가 됩니다. 문자열을 "c" + "at" 및 "d" + "ac"로 자르면 " c" + "ac"는 회문입니다.

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

  • n :=a

    의 크기
  • 나는 :=0

  • i

    • 나는 :=나는 + 1

  • a[인덱스 i에서 n-i-1까지]가 회문이거나 b[인덱스 i에서 n-i-1까지]가 회문일 때 true를 반환합니다.

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

예시

class Solution:
   def solve(self, a, b):
      n = len(a)
      i = 0
      while i < n and a[i] == b[-i-1]:
         i += 1
      palindrome = lambda s: s == s[::-1]
      return palindrome(a[i:n-i]) or palindrome(b[i:n-i])
ob = Solution()
S = "cat"
T = "dac"
print(ob.solve(S, T))

입력

"cat","dac"

출력

True