2016-09-02 6 views
0

내가나는이를 발견하지만 난 방법을 알아낼 수 없습니다

var string = 'abcdefghijklmnopqrstuvwxyz'; 

출력

aa 
ab 
ac 
... 

예상 자바 스크립트 문자열에서 2의 조합을 얻을 필요가 자바 스크립트 문자열 2의 조합을 얻을 2 길이 조합 만 필터링하고 다른 '추가'계산은 피하십시오.

var string = 'abcdefghijklmnopqrstuvwxyz'; 

var tree = function(leafs){ 
    var branches = [];  
    if(leafs.length == 1) return leafs;  
    for(var k in leafs){ 
     var leaf = leafs[k]; 
     tree(leafs.join('').replace(leaf,'').split('')).concat("").map(function(subtree){ 
      branches.push([leaf].concat(subtree)); 
     }); 
    } 
    return branches; 
}; 
console.log(tree(string.split('')).map(function(str){return str.join('')})) 
+1

왜 downvotes? – neoDev

+2

나는 투표하지 않았다. 그러나 나는 당신이 당신의 시도를 보여주지 않기 때문에 그것이라고 생각한다. – Almasyx

+1

나는 그것을 더 잘 준비하고 있었다. 나는 그것을 빨리 끝내기 위해 노력했다. – neoDev

답변

1

시험해보기 :

var string = 'abcdefghijklmnopqrstuvwxyz' 
var combinations = [] 

for (var i = 0; i < string.length; i++) { 
    for (var j = i; j < string.length; j++) { 
     combinations.push(string[i] + string[j]) 
    } 
} 

그러면 aa, ab... bb, bc... zz가 생성됩니다. 당신이 aa, ab... ba, bb... zz을 원한다면, 그냥 인쇄 한

var string = "abcdefghijklmnoprstuvwxyz"; 
for (var i = 0; i < string.length; ++i) 
{ 
    for (var j = 0; j < string.length; ++j) 
    { 
     console.log(string[i]+string[j]); 
    } 
} 

를 다음과 같이 당신이 그것을 반복 할 수있는 동일한 문자열을 통해 2의 조합을 만들기 위해 for (var j = 0...

+0

고마워! 너는 내 하루를 보냈다. – neoDev

1

에 결과를 루프에 대한 두 번째를 변경할 수 있지만, 쉽게 그것을 저장할 수

관련 문제