压缩 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP