ปัญหา
ฟังก์ชัน 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