【发布时间】:2016-03-08 12:44:55
【问题描述】:
我正在寻找在一个范围内生成所有字符串排列的最佳方法。
这是一个例子。
Start : aaaa
End : cccc
或者例如
Start : aabb
End : ccaa
应为第一种情况生成的字符串
aaaa,aaab,aaac,aaba,aabb,aabc,aaca,aacb ... cccc
所以我希望你有一个想法。所有可能的排列。
请建议如何有效地解决这个问题。我可以编写嵌套循环,但我希望有一些更有效的默认实现。
编辑
与二进制计数相同
100
101
110
111
示例
开始:aaa
结束 : ccc
aaa
aab
aac
aba
abb
abc
aca
acb
acc
baa
bab
bac
bba
bbb
bbc
bca
bcb
bcc
caa
cab
cac
cba
cbb
cbc
cca
ccb
ccc
【问题讨论】:
-
你试过了吗?
-
你的意思不是排列,是吗?完全不清楚,你真正想要做什么。
-
把它想象成计数,每个数字都是一个字母。
-
所有字符串的长度是否相同?如果是这样,那么您所要做的就是从十进制到基础 a 的基本转换,其中 a 是字母表中的字符数,正如@Martin 所说,开始数数。
标签: java string algorithm permutation