Computer >> Máy Tính >  >> Lập trình >> Javascript

Xóa các bản sao liền kề khỏi một chuỗi trong JavaScript

Vấn đề

Hàm JavaScript nhận một chuỗi, str, làm đối số đầu tiên và duy nhất.

Việc xóa trùng lặp bao gồm việc chọn hai chữ cái liền kề và bằng nhau và xóa chúng.

Chúng tôi liên tục thực hiện xóa trùng lặp trên chuỗi str cho đến khi chúng tôi không thể thực hiện được nữa.

Và hàm của chúng ta cuối cùng sẽ trả về chuỗi cuối cùng sau khi tất cả các lần xóa trùng lặp như vậy đã được thực hiện.

Ví dụ:nếu đầu vào của hàm là -

const str = 'kllkmk';

Sau đó, đầu ra phải là -

const output = 'mk';

Giải thích đầu ra:

Đầu tiên, chúng tôi sẽ xóa ‘ll’ khỏi chuỗi để giảm nó thành ‘kkmk’, sau đó sau khi xóa ‘kk’, chúng tôi sẽ trả về chuỗi mới.

Ví dụ

Mã cho điều này sẽ là -

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

Và đầu ra trong bảng điều khiển sẽ là -

mk