How to write a recursive function to generate all permutations of a string in Kotlin

1 Answer

0 votes
fun swap(str: String, i: Int, j: Int): String {
    val chars = str.toCharArray()
    val temp = chars[i]
    chars[i] = chars[j]
    chars[j] = temp
    return String(chars)
}

fun generatePermutation(str: String, l: Int, r: Int) {
    if (l == r) {
        println(str)
    } else {
        for (i in l..r) {
            val swapped = swap(str, l, i)
            generatePermutation(swapped, l + 1, r)
        }
    }
}

fun main() {
    val s = "ABC"
    generatePermutation(s, 0, s.length - 1)
}



/*
run:

ABC
ACB
BAC
BCA
CBA
CAB

*/

 



answered 6 days ago by avibootz
...