Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 문자열의 가능한 모든 고유 순열 만들기

<시간/>

문제

문자열 str을 받는 JavaScript 함수를 작성해야 합니다. 우리 함수는 입력 문자열의 모든 순열을 생성하고 중복이 있는 경우 이를 제거해야 합니다. 즉, 입력의 모든 문자를 가능한 모든 순서로 섞어야 합니다.

예시

다음은 코드입니다 -

const str = 'aabb';
const permute = (str = '') => {
   if (!!str.length && str.length < 2 ){
      return str
   }
   const arr = [];
   for (let i = 0; i < str.length; i++){
      let char = str[i]
      if (str.indexOf(char) != i)
         continue
         let remainder = str.slice(0, i) + str.slice(i + 1, str.length)
         for (let permutation of permute(remainder)){
            arr.push(char + permutation)
         }
   }
   return arr
}
console.log(permute(str));

출력

다음은 콘솔 출력입니다 -

[ 'aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa' ]