字符串压缩

题目链接

字符串压缩

题目描述

注意点

  • 字符串长度在0, 50000范围内
  • 若"压缩"后的字符串没有变短,则返回原先的字符串
  • 字符串中只包含小写英文字母(a至z)

解答思路

  • 模拟思路,使用pre存储当前位置的前一个字符,使用sum存储前一个字符重复的数量,当访问到当前位置的字符c时,如果c和pre相同,则只需要将sum加1,如果c和pre不同,则需要先将pre的数量写到结果中,然后将c写到结果中,还要更新pre和sum的值

代码

java 复制代码
class Solution {
    public String compressString(String s) {
        StringBuilder sb = new StringBuilder();
        char pre = '0';
        int sum = 0;
        for (char c : s.toCharArray()) {
            if (c == pre) {
                sum++;
                continue;
            }
            if (sum != 0) {
                sb.append(sum);
            }
            sb.append(c);
            pre = c;
            sum = 1;
        }
        if (sum != 0) {
            sb.append(sum);
        }
        return sb.length() >= s.length() ? s : sb.toString();
    }
}

关键点

  • 注意遍历完字符串后,还要将最后的字符的出现次数写入到结果中
相关推荐
摇滚侠4 分钟前
SpringMVC 入门到实战 文件上传 75-77
java·后端·spring·maven·intellij-idea
GIS数据转换器11 分钟前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
bIo7lyA8v12 分钟前
算法复杂度评估的实验统计方法与可视化的技术8
算法
李老师讲编程33 分钟前
中国电子学会图形化2020.12月Scratch三级考级题
算法·scratch·信息学奥赛·图形化编程·scratch素材
华如锦1 小时前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai
睡不醒男孩0308231 小时前
CLup 6.x 版本中针对StarRocks 存算一体集群的完整操作手册
java·服务器·网络·clup
退休倒计时1 小时前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript
旖-旎1 小时前
FloodFill(图像渲染)(1)
c++·算法·深度优先·力扣
戴西软件1 小时前
戴西 DLM 许可授权管理系统:破解无网络环境下工业软件授权难题,助力制造企业降本增效
网络·人工智能·python·深度学习·程序人生·算法·制造