Golang输入一个字符串,打印出该字符串中字符的所有排列

输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和cba。
分析:这是一道很好的考查对递归理解的编程题。
参考网上一个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]
        }
    }
}
结果
    str :=[]byte{'a','b','c'}
    permutation(str,0)
abc
acb
bac
bca
cba
cab


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。