javascript解力扣面试题 01.06. 字符串压缩

面试题 01.06. 字符串压缩

题目描述

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

示例1:

 输入:"aabcccccaaa"
 输出:"a2b1c5a3"
示例2:

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

字符串长度在[0, 50000]范围内。

解答

var compressString = function(S) {
    
    
    // 解法1:没啥技术,就计数完事
    // 执行用时:80 ms, 在所有 JavaScript 提交中击败了48.36%的用户
    // 内存消耗:39.8 MB, 在所有 JavaScript 提交中击败了85.03%的用户
    let res = "";
    for (let i = 0; i < S.length; ) {
    
    
        let j = i + 1;
        while (j < S.length && S[j] === S[i]) j++;
        res += S[i] + (j - i);
        i = j;
    }
    return res.length < S.length ? res : S;
};

猜你喜欢

转载自blog.csdn.net/weixin_44495869/article/details/121504179