•
문제 설명 : 제공된 두 문자열을 각각 s라고 했을 때, s = t + t + t + ... + t + t 를 만족하는 공통된 t 를 구한다.
•
풀이 방법
◦
t 조건에 맞는 문자열의 길이가 최대 공약수임을 이용했다.
•
시간복잡도 :
•
성공 코드
import math
class Solution:
def gcdOfStrings(self, str1: str, str2: str) -> str:
# t조건에 맞는 문자열의 길이는 두 문자열의 최대공약수일 것이다.
t_length = math.gcd(len(str1), len(str2))
# 임시로 문자열을 구한다.
t = str1[:t_length]
# 해당 문자열로 s(str1 / str2)를 각각 만들었을 때, 제공된 문자열과 일치할 경우 정답처리
if (len(str1) // t_length) * t == str1 and (len(str2) // t_length) * t == str2:
return t
return ""
Python
복사