js实现含有汉字、字母、数字的字符串压缩与解压算法
字符串压缩算法:
- 遍历字符串,记录每个字符出现的次数。
- 将字符和出现次数拼接成一个新的字符串。
- 如果新的字符串长度比原字符串长度短,则返回新的字符串,否则返回原字符串。
示例代码:
function compress(str) {
let res = '';
let count = 1;
for (let i = 0; i < str.length; i++) {
if (str[i] === str[i + 1]) {
count++;
} else {
res += str[i] + count;
count = 1;
}
}
return res.length < str.length ? res : str;
}
字符串解压算法:
- 遍历字符串,按照字符和出现次数的顺序读取每个字符和它的出现次数。
- 将字符和出现次数拼接成一个新的字符串。
示例代码:
function decompress(str) {
let res = '';
let count = '';
for (let i = 0; i < str.length; i++) {
if (/\d/.test(str[i])) {
count += str[i];
} else {
res += str[i].repeat(parseInt(count));
count = '';
}
}
return res;
}
注意:以上代码仅支持单个字符的压缩和解压,如果要支持多个字符的压缩和解压,需要修改代码
原文地址: https://www.cveoy.top/t/topic/fImV 著作权归作者所有。请勿转载和采集!