/** * 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循環是怎么執行的?? 誰能告訴我一下。。。這個是全排列的算法
誰能給我講講關于遞歸的東西。。好難理解啊。。
慕田峪7331174
2018-10-09 13:18:01