Daily LeetCode Challenge - 1071. Greatest Common Divisor of Strings

Min Young Kim·2023년 2월 1일
0

algorithm

목록 보기
61/198

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 ""
    }
}
profile
길을 찾는 개발자

0개의 댓글