분류 전체보기378 문자열의 모든 순열찾기 fun getPermutations(s: String): List { if (s.length 2023. 10. 29. 문자열 압축 fun compressString(s: String): String { if (s.isEmpty()) return "" val compressed = StringBuilder() var count = 1 for (i in 1 until s.length) { if (s[i] == s[i - 1]) { count++ } else { compressed.append(s[i - 1]).append(count) count = 1 } } compressed.append(s.last()).append(count) return compressed.toString() } fun main() { println(compressString("aaabbbbccdddda")) // "a3b4c2d4a1" } 2023. 10. 29. 가장 긴 공통 접두사 찾기 fun longestCommonPrefix(strs: List): String { if (strs.isEmpty()) return "" val prefix = StringBuilder() strs.reduce { acc, s -> acc.commonPrefixWith(s) }.forEach { prefix.append(it) } return prefix.toString() } fun main() { println(longestCommonPrefix(listOf("flower", "flow", "flight"))) // "fl" } 2023. 10. 29. 회문확인 fun isPalindrome(s: String): Boolean { return s == s.reversed() } fun main() { println(isPalindrome("level")) // true } 2023. 10. 29. 애너그램 확인 fun isAnagram(s1: String, s2: String): Boolean { return s1.toList().sorted() == s2.toList().sorted() } fun main() { println(isAnagram("listen", "silent")) // true } 2023. 10. 29. 중복문자 제거 fun removeDuplicates(s: String): String { return s.toSet().joinToString("") } fun main() { println(removeDuplicates("banana")) // "ban" (순서는 보장되지 않음) } 2023. 10. 29. 이전 1 2 3 4 5 6 7 8 ··· 63 다음