打印字符串中字符的所有排列

题目描述:

输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和cba。

方法:递归
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 ++  {
            temp := str[j]
            str[j] = str[i]
            str[i] = temp
            permutation(str,i+1)

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

  

 

posted @ 2020-09-14 15:09  small_lei_it  阅读(326)  评论(0编辑  收藏  举报