반응형
fun permute(str: String, l: Int, r: Int, result: MutableList<String>) {
if (l == r) result.add(str)
else {
for (i in l..r) {
val swapped = str.toCharArray().apply {
this[l] = this[i].also { this[i] = this[l] }
}.joinToString("")
permute(swapped, l + 1, r, result)
}
}
}
fun getAllPermutations(s: String): List<String> {
val result = mutableListOf<String>()
permute(s, 0, s.length - 1, result)
return result
}
반응형
'Algorithm' 카테고리의 다른 글
DFS and BFS (0) | 2024.03.24 |
---|---|
문자열에서 첫 번째 고유 문자 찾기 (0) | 2023.10.29 |
가장 긴 공통 접두사 (0) | 2023.10.29 |
유효한 괄호 문자열 확인 (0) | 2023.10.29 |
최빈 단어 찾기 (0) | 2023.10.29 |