문제
문자열 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' ]