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

ES_KYW · · 1523 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串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 ++  {
            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



有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:ES_KYW

查看原文:Golang输入一个字符串,打印出该字符串中字符的所有排列

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1523 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传