Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript sử dụng một chuỗi str. Hàm của chúng ta nên tạo tất cả các hoán vị của chuỗi đầu vào và loại bỏ các bản sao, nếu có. Điều này có nghĩa là, chúng ta phải xáo trộn tất cả các chữ cái từ đầu vào theo tất cả các thứ tự có thể.
Ví dụ
Sau đây là mã -
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));
Đầu ra
Sau đây là đầu ra của bảng điều khiển -
[ 'aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa' ]