【发布时间】:2017-07-31 19:09:45
【问题描述】:
我正在尝试用 C++ 制作一个蛮力算法来解决问题。我之前在 Python 中制作了一个蛮力算法,但这使用了第 3 方库,这意味着我无法将其转换为 C++。我很喜欢我发现的这个设计;
#include <iostream>
using namespace std;
int main() {
string characters = "abcde";
int length = 5;
string word = "";
for(int i = word.length(); i <= length; i++) {
for(int l = 0; l < characters.length(); l++) {
word += characters[l];
cout << word << "\n";
}
}
return 0;
}
,但由于一些错误,它的输出是:
abcdeabcde
abcdeabcdea
abcdeabcdeab
abcdeabcdeabc
abcdeabcdeabcd
abcdeabcdeabcde
等等…… 结果,我需要的是:
a
b
c
d
e
aa
ab
ac
ad
ae
ba
bb
bc
...
提前致谢:)
任何帮助表示赞赏:)
【问题讨论】:
-
这不是你代码的输出
-
你想对该字符串进行所有可能的排列等等......
-
您没有每次都遍历字符串。我会为此使用一个字符数组。
-
这个问题更好的措辞是:“我想在给定字母表的语言中生成所有单词”en.wikipedia.org/wiki/Formal_language(虽然我的措辞有点令人困惑)
标签: c++ algorithm c++11 brute-force