Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

สร้าง Permutation ทั้งหมดที่ไม่ซ้ำของสตริงใน JavaScript


ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริง str ฟังก์ชันควรสร้าง permutation ทั้งหมดของสตริงอินพุตและลบซ้ำถ้ามี หมายถึงสลับตัวอักษรทุกตัวในทุกๆ ลำดับที่เป็นไปได้

ตัวอย่าง

โค้ดด้านล่างนี้

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' ]