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

ลบตัวอักษรซ้ำติดกันออกจากสตริงใน JavaScript


ปัญหา

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

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

เราทำการลบซ้ำซ้อนๆ บนสตริง 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