본문 바로가기

Algorithm

문자열의 모든 순열

반응형
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