/** * Created by LR on 2016/12/7. */function permutate(str) { var result = []; if(str.length == 1){ return [str] }else { var preResult = permutate(str.slice(1)) for (var j = 0; j < preResult.length; j++) { console.log(preResult[j]) for (var k = 0; k < preResult[j].length+1; k++) { var temp=preResult[j].slice(0,k)+str[0]+preResult[j].slice(k); result.push(temp); } } console.log("!") console.log(result) return result }}permutate('abc');第一次是abc 进入函数,然后长度大于1进入else;所以这里就应该是var preResult = permutate("bc")之后呢??我就想到bc进入函数,长度大于一之后就 var preResult = permutate("c")长度等于1了 然后就返回一个c 这个for循环是怎么执行的?? 谁能告诉我一下。。。这个是全排列的算法
添加回答
举报
0/150
提交
取消