【发布时间】:2018-12-12 10:43:51
【问题描述】:
打印由 n 个字符组成的所有可能的长度为 k 的字符串是一个常见问题,并且已经有 solution。
不过,我希望知道
问题:有没有办法打印所有可能的字符串而不重复结构?
重复结构示例[k = 3, n = {a, b, c}]:
- AAA = BBB = CCC
- ABB = ACC = BAA = BCC = CAA = CBB
- ABC = ACB = BAC = BCA = CAB = CBA
- ABA = ACA = BAB = BCB = CAC = CBC
- AAB = AAC = BBA = BBC = CCA = CCB
例如:
输入:
k=3, n={a,b,c}
输出:
aaa
aab
aba
abb
abc
复杂度要求:不大于O(n^k)。
【问题讨论】:
-
嗯,是的,有办法做到这一点。如果你花点时间思考一下,你可能会想出 [k=3, n={a,b,c}] 和 [k=4, n={a,b,c,d] 的解决方案}]。从那里,您应该能够开发通用解决方案。试一试。如果您遇到困难,请发布您的代码并寻求帮助。
-
您能否显示
k=3, n={a,b,c,d}的预期输出?
标签: java algorithm permutation