Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การสร้างการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดของสตริงใน JavaScript


ปัญหา

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

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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