輸入一個(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