길이가 같은 두 개의 스트링 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