길이가 같은 두 개의 문자열 S1과 S2가 있다고 가정하면 S1[0…i]와 S2[i+1…n-1]이 제공하는 인덱스 i를 찾아야 합니다. 함께 연결될 때 회문. 불가능할 경우 -1을 반환합니다.
따라서 입력이 S1 ="pqrsu", S2 ="wxyqp"와 같으면 출력은 S1[0..1] ="pq", S2[2..n-1] ="ypq"와 같이 1이 됩니다. ", S1 + S2 ="pqyqp"는 회문임을 나타냅니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
n :=str1의 크기
-
str :=빈 문자열
-
0에서 n 사이의 i에 대해 수행
-
str :=str 연결 str1[i]
-
temp :=빈 문자열
-
i + 1에서 n 사이의 j에 대해 수행
-
temp :=임시 연결 str2[j]
-
-
isPalindrome(str concatenate temp)가 참이면
-
반환 i
-
-
-
반환 -1
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def isPalindrome(s): if s == s[::-1]: return True return False def find_index(str1, str2): n = len(str1) str = "" for i in range(n): str = str + str1[i] temp = "" for j in range(i + 1, n): temp += str2[j] if (isPalindrome(str + temp)): return i return -1 str1 = "pqrsu" str2 = "wxyqp" print(find_index(str1, str2))
입력
"pqrsu", "wxyqp"
출력
1