面试题 01.06. 字符串压缩

简介: 面试题 01.06. 字符串压缩

字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。


示例1:

 输入:"aabcccccaaa"
 输出:"a2b1c5a3"

示例2:

 输入:"abbccd"
 输出:"abbccd"
 解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。

提示:

字符串长度在[0, 50000]范围内。
/**
 * @param {string} S
 * @return {string}
 */
var compressString = function (S) {
    let count = 0, ans = '', cur = ''
    for (let i = 0; i <= S.length; i++) {
        if (S[i] === cur) {
            count++;
        } else {
            if(count!==0){
                ans+= (cur+''+count)
            }
            count = 1;
            cur = S[i]
        }
       
    }
    return ans.length>=S.length?S:ans;
};


let s = "bb"
console.log(compressString(s))
相关文章
|
6月前
|
算法
【每日挠头算法题(2)】压缩字符串|仅执行一次字符串交换能否使两个字符串相等
【每日挠头算法题(2)】压缩字符串|仅执行一次字符串交换能否使两个字符串相等
|
2月前
|
算法 前端开发
1544. 整理字符串
1544. 整理字符串
17 0
|
3月前
面试题 01.06:字符串压缩
面试题 01.06:字符串压缩
20 0
|
4月前
|
存储 设计模式 算法
【数据结构和算法】压缩字符串
给你一个字符数组chars,请使用下述算法压缩: 从一个空字符串s开始。对于chars中的每组连续重复字符: 如果这一组长度为1,则将字符追加到s中。 否则,需要向s追加字符,后跟这一组的长度。 压缩后得到的字符串s不应该直接返回,需要转储到字符数组chars中。需要注意的是,如果组长度为10或10以上,则在chars数组中会被拆分为多个字符。 请在修改完输入数组后,返回该数组的新长度。
65 1
|
9月前
|
测试技术
经典例题 字符串压缩详解
经典例题 字符串压缩详解
93 0
|
6月前
|
存储 算法
【每日挠头算法题(5)】重新格式化字符串|压缩字符串
【每日挠头算法题(5)】重新格式化字符串|压缩字符串
|
5月前
|
存储 Java 容器
[正式学习java③]——字符串在内存中的存储方式、为什么字符串不可变、字符串的拼接原理,键盘录入的小细节。
[正式学习java③]——字符串在内存中的存储方式、为什么字符串不可变、字符串的拼接原理,键盘录入的小细节。
|
6月前
|
程序员
【Leetcode】面试题 01.06. 字符串压缩、面试题 05.07. 配对交换
目录 面试题 01.06. 字符串压缩: 面试题 05.07. 配对交换
21 0
|
10月前
Leecode 面试题 01.06. 字符串压缩
Leecode 面试题 01.06. 字符串压缩
29 0

热门文章

最新文章