Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Nén chuỗi (string compression) trong JavaScript

Viết hàm nén chuỗi: ký tự liên tiếp → ký tự + số lượng. Ví dụ: 'wwwaabbbb' → 'w3a2b4'. Nếu chuỗi nén không ngắn hơn gốc, trả về chuỗi gốc.

Ví dụ: 'aab' nén thành 'a2b1' (dài hơn) → trả về 'aab'.

Ví dụ

const str1 = 'wwwaabbbb';
const str2 = 'kkkkj';
const str3 = 'aab';
const compressString = (str = '') => {
  let res = '', count = 1;
  for (let i = 0; i < str.length; i++) {
    let cur = str[i], next = str[i + 1];
    if (cur === next) count++;
    else { res += cur + String(count); count = 1; }
  }
  return res.length < str.length ? res : str;
};
console.log(compressString(str1));
console.log(compressString(str2));
console.log(compressString(str3));

Kết quả

w3a2b4 k4j1 aab