字符串压缩

题目链接

字符串压缩

题目描述

注意点

  • 字符串长度在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();
    }
}

关键点

  • 注意遍历完字符串后,还要将最后的字符的出现次数写入到结果中
相关推荐
代码中介商几秒前
B+树:数据库索引的终极奥秘
数据结构
蓝速科技1 分钟前
3D 数字人全息舱算力部署方案对比:本地 X86 独显架构与云端 RK 架构怎么选才好
数据结构·人工智能·算法·架构·排序算法
AI行业学习3 分钟前
CC-Switch 下载、安装与使用配置指南【2026.5.29】
java·开发语言·vscode·python·eclipse·laravel
许彰午5 分钟前
03_Java流程控制详解
java·开发语言·python
霍格沃兹测试学院-小舟畅学10 分钟前
接口自动化测试的下一个十年:从脚本到Skills,让AI学会“如何测”
java·前端·人工智能
我命由我1234513 分钟前
Retrofit - URL 格式错误问题、支持 HTTP 与 HTTPS
java·http·https·java-ee·android studio·android-studio·retrofit
qingyulee16 分钟前
集成学习、聚类算法
算法·聚类·集成学习
灰灰老师16 分钟前
Docker部署Tomcat9
java·linux·docker·tomcat
西安邮电大学17 分钟前
Kafka如何避免重复消费
java·后端·其他·面试·kafka