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

การลบรายการซ้ำที่อยู่ติดกันออกจากสตริงใน JavaScript


ปัญหา

ฟังก์ชัน JavaScript ที่รับสตริง str เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว

การลบที่ซ้ำกันประกอบด้วยการเลือกตัวอักษรสองตัวที่อยู่ติดกันและเท่ากัน แล้วนำออก

เราทำการลบซ้ำใน string str ซ้ำๆ จนกว่าเราจะทำไม่ได้อีกต่อไป

และในที่สุดฟังก์ชันของเราควรจะส่งคืนสตริงสุดท้ายหลังจากลบที่ซ้ำกันทั้งหมดแล้ว

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −

const str = 'kllkmk';

จากนั้นผลลัพธ์ควรเป็น −

const output = 'mk';

คำอธิบายผลลัพธ์:

ประการแรก เราจะลบ 'll' ออกจากสตริงเพื่อลดขนาดเป็น 'kkmk' จากนั้นหลังจากลบ 'kk' เราจะคืนค่าสตริงใหม่

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const str = 'kllkmk';
const removeDuplicates = (str = '') => {
   const arr = [];
   for(const char of str){
      if(char === arr[arr.length - 1]){
         while(arr[arr.length - 1] === char){
            arr.pop();
         };
      } else {
         arr.push(char);
      };
   };
   return arr.join('');  
};
console.log(removeDuplicates(str));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

mk