For strings S
and T
, we say "T
divides S
" if and only if S = T + ... + T
(T
concatenated with itself 1 or more times)
Return the largest string X
such that X
divides str1 and X
divides str2.
Input: str1 = "ABCABC", str2 = "ABC" Output: "ABC"
Input: str1 = "ABABAB", str2 = "ABAB" Output: "AB"
Input: str1 = "LEET", str2 = "CODE" Output: ""
1 <= str1.length <= 1000
1 <= str2.length <= 1000
str1[i]
andstr2[i]
are English uppercase letters.
class Solution:
def gcdOfStrings(self, str1: str, str2: str) -> str:
if str1 == str2:
return str1
if str1.startswith(str2):
return self.gcdOfStrings(str1[len(str2):], str2)
elif str2.startswith(str1):
return self.gcdOfStrings(str1, str2[len(str1):])
return ""