我们需要编写一个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; }; } returnres.length<str.length? res : str; }; console.log(compressString(str1)); console.log(compressString(str2)); console.log(compressString(str3));输出结果
控制台中的输出将是-
3a2b4 k4j1 aab