压缩 JavaScript 字符串
我们要求撰写一个 JavaScript 函数,它可以输入一个可能包含一些连续重复字符的字符串。
该函数应以这种方式压缩字符串−
'wwwaabbbb' -> 'w3a2b4' 'kkkkj' -> 'k4j'
如果压缩字符串的长度大于或等于原始字符串,则我们应该返回原始字符串。
例如−
'aab' 可以压缩为 'a2b1',但会将其长度增加到 4,因此我们的函数应返回 'aab'
示例
代码如下——
const str1 = 'wwwaabbbb'; const str2 = 'kkkkj'; const str3 = 'aab'; const compressString = (str = '') => { let res = ''; let count = 1; for(let i = 0; i < str.length; i++){ let cur = str[i]; let 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));
输出
控制台中的输出如下−
3a2b4 k4j1 aab
广告