dre*_*erD -2 c++ recursion loops function definition
我已经从递归章节中的斯坦福大学CS106B课程的教科书中读到了这段代码.这个递归函数使用循环.尽管在递归调用之间发生分解,并且循环只是尝试不同的组合,但此函数是否仍然限定了递归的定义?
输出简介:生成集合中字符串排列的代码,例如"ABC" - >"ACB","BCA"....
Set<string> generatePermutations(string str) {
Set<string> result;
if (str == "") {
result += "";
} else {
for (int i = 0; i < str.length(); i++) {
char ch = str[i];
string rest = str.substr(0, i) + str.substr(i + 1);
for (string s : generatePermutations(rest)) {
result += ch + s;
}
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)