Problem From.
https://leetcode.com/problems/greatest-common-divisor-of-strings/
오늘 문제는 각 String 이 주어질때 두 string 을 나누어 떨어지게 할 수 있는 공통된 가장 큰 string 을 찾는 문제였다.
여기서 string 을 나누어 떨어지게 할 수 있다는 말은 나누는 string 이 나누어지는 string 을 모두 대체할 있음을 의미한다.
두 String 을 나눌 수 있는 가장 큰 string 을 찾기 위해 길이가 더 짧은 string 을 찾은 뒤, 그 string 에서 끝부터 하나씩 낱말을 줄여나가면서, 그 줄인 낱말이 원래의 두개의 string 을 모두 대체할 수 있는지 보는 식으로 답을 작성하였다.
class Solution {
fun gcdOfStrings(str1: String, str2: String): String {
val short = if(str1.length < str2.length) str1 else str2
val long = if(str1.length >= str2.length) str1 else str2
for(i in short.length downTo 1) {
val part = short.substring(0 until i)
if(str1.replace(part, "") == "" && (str2.replace(part, "") == "")) return part
}
return ""
}
}