Mô tả vấn đề
Hàm JavaScript nhận vào chuỗi str làm đối số duy nhất. Việc xóa trùng lặp gồm chọn hai ký tự liền kề bằng nhau và xóa chúng. Ta lặp lại việc xóa cho đến khi không thể nữa. Hàm trả về chuỗi cuối cùng sau tất cả các lần xóa.
Ví dụ, nếu đầu vào là:
const str = 'kllkmk';
Thì đầu ra nên là:
const output = 'mk';
Giải thích đầu ra
Trước hết xóa 'll' thành 'kkmk', sau đó xóa 'kk' trả về chuỗi mới.
Ví dụ minh họa
Mã thực hiện (stack):
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));Đầu ra
Kết quả trong console sẽ là:
mk