longest-common-prefix
LongestCommonPrefix
- 사전순으로 문자열이 정렬하면 중간은 반드시 같은 문자열이 있다는 것을 알 수 있기 때문에 맨 첫번째와 마지막 인덱스의 값만 서로 공통된 값이 있는지 체크하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
fun longestCommonPrefix(strs: Array<String>): String {
if (strs.size == 1) {
return strs[0]
}
var commonPreFixIndex = 0
strs.sort()
while (true) {
val firstStrChar = strs[0].getOrNull(commonPreFixIndex) ?: break
val lastStrChar = strs[strs.size - 1].getOrNull(commonPreFixIndex) ?: break
if (firstStrChar == lastStrChar) {
commonPreFixIndex++
} else {
break
}
}
if (commonPreFixIndex == 0) {
return ""
}
return strs[0].substring(0, commonPreFixIndex)
}
This post is licensed under CC BY 4.0 by the author.