LeetCode每日一题:字符串压缩(七十五)

字符串压缩

一、LeetCode题解

瞧一瞧~
做题路线( ** = 当前阶段)
  • 阶段一(题库+每日一题(3.15日开始每天死磕))**
  • 阶段二(解题质量至上)
  • 阶段三(算法思想至上)

二、算法题

题目

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

示例1:

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

示例2:

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

解法一 (遍历)

  • 思路
    • 遍历
    • 新字符串每一段只记录 一个字母+数字
  • 代码
var compressString = function(S) {
    let len = S.length
    if (len < 3) return S
    let res = ''
    res += S[0]
    let t = 0
    for (var i = 1; i < len; i++) {
        if (S[i] !== S[i - 1]) {
            res += (i - t)
            t = i
            res += S[i]
        }
    }
    res += (i - t)

    return res.length < len ? res : S
};
  • 结果

在这里插入图片描述

发布了263 篇原创文章 · 获赞 40 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/jbj6568839z/article/details/104891901