Gcd Of Strings
LeetCode Problem
# https://leetcode.com/problems/greatest-common-divisor-of-strings/
class Solution:
def gcdOfStrings(self, str1: str, str2: str) -> str:
len1 = len(str1)
len2 = len(str2)
def is_divisible(length):
if len1 % length or len2 % length:
return False # if it can't divide it completely (% != 0)
# else it divides completely, how many times we need to divide in order to get ans
factor1 = len1 // length
factor2 = len2 // length
return str1[:length] * factor1 == str1 and str1[:length] * factor2 == str2
for length in range(min(len1, len2), 0, -1): # greedy approach
if is_divisible(length):
return str1[:length]
# else empty
return ""