如何找到字符串中所有可能的字母组合?
给定一个字符串,我需要找到该字符串的所有可能的字母组合。我实现这一目标的最佳方法是什么? 示例:
abc
结果:
abc
acb
bca
bac
cab
cba
到目前为止我什么都没有。我不是要代码。我只是问最好的方法?算法?伪代码?也许是讨论?
I am given a string and i need to find all possible letter combinations of this string. What is the best way I can achieve this?
example:
abc
result:
abc
acb
bca
bac
cab
cba
i have nothing so far. i am not asking for code. i am just asking for the best way to do it? an algorithm? a pseudocode? maybe a discussion?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以对其进行排序,然后使用 std::next_permutation
看一下示例: http://www .cplusplus.com/reference/algorithm/next_permutation/
you can sort it then use std::next_permutation
take a look at the example: http://www.cplusplus.com/reference/algorithm/next_permutation/
您想要组合或排列吗?例如,如果您的字符串是“abbc”,您想看到“bbac”一次还是两次?
如果您确实想要排列,可以使用 std::next_permutation ,它会为您处理所有工作。
Do you want combinations or permutations? For example, if your string is "abbc" do you want to see "bbac" once or twice?
If you actually want permutations you can use
std::next_permutation
and it'll take care of all the work for you.如果您想要组合(与顺序无关),您可以使用组合查找算法,例如找到 此处 或 此处。或者,您可以使用 this (组合生成器的 Java 实现,并通过一个示例演示了什么 或者,如果您想要
帖子中列出的内容(排列),那么您可以(对于 C++)使用在中找到的
std::next_permutation
,您可以在std::next_permutation
此处。希望这会有所帮助。:)
If you want the combinations (order independant) You can use a combination finding algorithm such as that found either here or here. Alternatively, you can use this (a java implementation of a combination generator, with an example demonstrating what you want.
Alternatively, if you want what you have listed in your post (the permutations), then you can (for C++) use
std::next_permutation
found in<algorithm.h>
. You can find more information onstd::next_permutation
here.Hope this helps. :)
在 C++ 中,
std::next_permutation
:In C++,
std::next_permutation
:复制自旧的维基百科文章;
对于每个数字 k,0 ≤ k < n!,以下算法在序列 s 上生成唯一的排列。
Copied from an old Wikipedia article;
For every number k, with 0 ≤ k < n!, the following algorithm generates a unique permutation on sequence s.