Golang輸入一個(gè)字符串,打印出該字符串中字符的所有排列

輸入一個(gè)字符串,打印出該字符串中字符的所有排列。
例如輸入字符串a(chǎn)bc,則輸出由字符a、b、c 所能排列出來的所有字符串a(chǎn)bc、acb、bac、bca、cab 和cba。
分析:這是一道很好的考查對(duì)遞歸理解的編程題。
參考網(wǎng)上一個(gè)Java例子,但沒能理解

func permutation( str []byte, i int)  {
    if i > len(str) {
        return
    }
    if i == len(str) -1 {
        println(string(str[:]))
    }else {
        for j := i; j<len(str);j ++  {

            str[j], str[i] = str[i],str[j]

            permutation(str,i+1)

            str[j], str[i] = str[i],str[j]
        }
    }
}
結(jié)果
    str :=[]byte{'a','b','c'}
    permutation(str,0)
abc
acb
bac
bca
cba
cab


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容