【发布时间】:2017-02-17 01:20:13
【问题描述】:
我见过这个问题的其他语言版本,但不是 JS。
是否可以在一个函数中递归执行此操作?
我知道我需要获取字符串中的第一个元素,然后将其附加到每个解决方案中,以对字符串的其余部分进行递归。 所以从逻辑上讲,我理解递归需要如何进行。我只是不明白如何将第一个字符附加到每个递归解决方案中
var myString = "xyz";
function printPermut(inputString){
var outputString;
if(inputString.length === 0){
return inputString;
}
if(inputString.length === 1){
return inputString;
}
else{
for(int i = 0; i<inputString.length(); i++){
//something here like:
//outputString = outputString.concat(printPermut(inputString.slice(1))??
//maybe store each unique permutation to an array or something?
}
}
}
【问题讨论】:
-
提示:
function foo(x) { return [ x.substring(0, 1) ].push(foo(x.substring(1))) } -
@FuzzyTree 所有这些似乎都使用函数外部的全局变量,或者其他函数(即两个返回)。我很好奇它是否可以用一个输入参数在一个函数中完成。
-
@Tibrogargan 大声笑不,这是保证堆栈溢出
标签: javascript string algorithm recursion permutation