问题是:
创建一个函数来计算字符串数组的所有组合,例如:{ { "red", "wooden", "gate" }, { "lazy", "little", "man" }, { "what", "where", "who", "why" } }输出:red lazy what,red lazy where,red lazy who,red lazy why,red little what,etc .....
此函数将打印第一个数组中一个字的所有组合,第二个数组中的一个字,第三个数组中的一个字等.
您的解决方案可能不使用递归
注意:每个阵列中的数组数和元素数可能会有所不同!您的方法需要能够处理此问题.
我正在尝试练习我的算法,这个问题只会让我发疯.我曾经尝试过集思广益,但此时已经花了好几个小时无处可去.当我想到我可能只需要创建一个字符串向量时,我正在将我的思想重新设计到另一个嵌套循环(见下文......)中,这可能会成为一个非常大的向量...现在,我们称之为矢量endings).如果我在给定的外部向量中向后遍历vector<vector<string>>并endings通过将每个结尾附加到当前外部向量中的每个字符串来更新,那么当我到达第一个外部向量时,我的所有组合都将在endings.
我可能没有想到这个,因为我假设我只是打印,我不应该存储这么多.无论如何,这里有一些拙劣的代码,我停止发布这个.这并不多.
vector<vector<string>> ar = {{"red", "wooden", "gate"},
{"lazy", "little", "man"},
{"what", "where", "who", "why"}};
vector<string> res(ar.size());
for (int i = 0; i < ar.size(); i++) {
res[i]= ar[i][0];
}
int i;
for (i = ar.size()-1; i …Run Code Online (Sandbox Code Playgroud)