【发布时间】:2011-05-13 12:13:36
【问题描述】:
找到字符串的所有排列的优雅方法是什么?例如。 ba 的排列将是 ba 和 ab,但是像 abcdefgh 这样的更长的字符串呢?有Java实现例子吗?
【问题讨论】:
-
这是一个非常受欢迎的问题。你可以看这里:careercup.com/question?id=3861299
-
有一个假设需要提及。人物是独一无二的。例如,对于字符串“aaaa”,只有一个答案。要获得更一般的答案,您可以将字符串保存在一个集合中以避免重复
-
是允许重复字符,还是不允许重复字符?一个字符串可以多次出现同一个字符吗?
-
阅读理论(或者如果你像我一样懒惰,去en.wikipedia.org/wiki/Permutation)并实现一个真正的算法。基本上你可以生成一系列元素的排序(事实上它是一个字符串是无关紧要的)并遍历这些排序直到你回到开始。避开任何涉及递归或字符串操作的事情。