小编Bel*_*lla的帖子

在不使用递归的情况下解决所有2d字符串向量组合?(C++)

问题是:

创建一个函数来计算字符串数组的所有组合,例如:{ { "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)

c++ arrays string recursion vector

3
推荐指数
1
解决办法
93
查看次数

标签 统计

arrays ×1

c++ ×1

recursion ×1

string ×1

vector ×1