> 웹 프론트엔드 > JS 튜토리얼 > js의 문자열 전체 배열에 대한 알고리즘 분석

js의 문자열 전체 배열에 대한 알고리즘 분석

不言
풀어 주다: 2018-07-20 10:58:30
원래의
2412명이 탐색했습니다.

이 글은 js의 문자열 전체 배열에 대한 알고리즘 분석을 소개합니다. 필요한 친구들이 참고할 수 있습니다.

제목 설명

문자열을 입력하고 해당 문자열에 포함된 모든 문자 순열을 사전순으로 출력합니다. 예를 들어 문자열 abc가 입력되면 문자 a, b, c로 정렬할 수 있는 모든 문자열 abc, acb, bac, bca, cab, cba가 인쇄됩니다.

Analytic

분석할 내용이 없습니다. 이 질문을 온라인으로 확인하는 아이디어는 아마도
#🎜입니다. 🎜#abc는 abc, bac, cba로 나누어집니다(이것은 0과 0의 교환, 0과 1의 교환, 0과 2의 교환

첫 번째 단계에서 얻은 abc는 abc, acb로 나누어집니다(1과 1, 1과 2의 교환입니다

첫 번째 단계에서 얻은 bac가 bac와 bca로 나누어집니다(이것은 1과 1의 교환, 1과 2 교환

첫 번째 단계에서 얻은 CBA가 차별화됩니다. cba, cab에 대한 코드 구현(이것은 1과 1 교환, 1과 2 교환입니다

#🎜🎜 #

function Permutation(str)
{
    if(str === null || str === "")
        return [];
    var res = [];
    var index = 0;
    
    step(str.split(""), index, res);
    
    return res.sort();
}

function step(strArr, cur, res) {
    if(cur === strArr.length-1){
        var i = 0, str = "";
        while(i < strArr.length){
            str += strArr[i++];
        }
        res.push(str);
    }
    
    for(var i = cur;i < strArr.length;i++) {
        if(strArr[i] === strArr[cur] && i !== cur)
            continue;
        swap(strArr, i, cur);
        step(strArr, cur+1, res);
        swap(strArr, i, cur);
    }
}

function swap(arr, a, b) {
    var temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;
}
로그인 후 복사

관련 권장 사항:

JavaScript에서 Object.defineProperty() 메서드 구문 분석

#🎜 🎜#vue-cli의 단위 테스트 구문 분석 예시

#🎜🎜 #React 사용: React 구성 요소 내부의 상태 관리

위 내용은 js의 문자열 전체 배열에 대한 알고리즘 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿