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