lc-go/solutions/10/q1071/solution.go
2026-01-09 18:00:28 +09:00

28 lines
550 B
Go

package q1071
func isRepeatOf(segment, str string) bool {
if len(segment) > len(str) || len(segment) == 0 || len(str)%len(segment) != 0 {
return false
}
for len(str) > 0 {
if str[:len(segment)] != segment {
return false
}
str = str[len(segment):]
}
return true
}
func gcdOfStrings(str1 string, str2 string) string {
if len(str1) > len(str2) {
str1, str2 = str2, str1
}
for l := len(str1); l > 0; l-- {
if isRepeatOf(str1[:l], str1) && isRepeatOf(str1[:l], str2) {
return str1[:l]
}
}
return ""
}
var _ = gcdOfStrings