参考答案:
下面是实现示例:
1function compressString(str) { 2 let compressed = ''; 3 let count = 1; 4 5 for (let i = 0; i < str.length; i++) { 6 if (str[i] === str[i + 1]) { 7 // 如果当前字符与下一个字符相同,增加计数器 8 count++; 9 } else { 10 // 否则,将当前字符及其计数器追加到结果中 11 compressed += str[i] + count; 12 count = 1; // 重置计数器 13 } 14 } 15 16 // 返回较短的字符串(原始字符串或压缩后的字符串) 17 return compressed.length < str.length ? compressed : str; 18} 19 20// 示例用法 21console.log(compressString('aabcccccaaa')); // 输出 "a2b1c5a3" 22console.log(compressString('abcdefg')); // 输出 "abcdefg" (未发生压缩)
最近更新时间:2024-03-12