当前位置:网站首页>LeetCode_2632_字符串压缩
LeetCode_2632_字符串压缩
2022-08-09 22:04:00 【Fitz1318】
题目链接
题目描述
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa
会变为a2b1c5a3
。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a
至z
)。
示例1:
输入:"aabcccccaaa"
输出:"a2b1c5a3"
示例2:
输入:"abbccd"
输出:"abbccd"
解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
提示:
- 字符串长度在
[0, 50000]
范围内。
解题思路
双指针法
- 令
left
和right
都初始化为0
,right
指针遍历字符串,直到访问到不同字符时停止,此时right - left
便是首个字符的连续出现次数,即可完成首个字符的压缩操作 - 接下来,从下个字符开始,重复以上操作,直到遍历完成即可
AC代码
class Solution {
public String compressString(String S) {
int left = 0;
int right = 0;
StringBuilder ans = new StringBuilder();
while (left < S.length()) {
while (right < S.length() && S.charAt(left) == S.charAt(right)) {
right++;
}
ans.append(S.charAt(left)).append(right - left);
left = right;
}
return ans.length() < S.length() ? ans.toString() : S;
}
}
边栏推荐
- 聊聊SQL语句中 DDL 、DML 、DQL 、DCL 分别是什么
- 开发者必备:一文快速熟记【数据库系统】和【软件开发模型】常用知识点
- 【微信小程序开发(八)】音频背景音乐播放问题汇总
- 深度剖析 Apache EventMesh 云原生分布式事件驱动架构
- How do task flow executors work?
- 17-GuliMall 搭建虚拟域名访问环境
- JuiceFS 在多云存储架构中的应用 | 深势科技分享
- Flask之路由(app.route)详解
- Tencent continues to wield the "big knife" to reduce costs and increase efficiency, and free catering benefits for outsourced employees have been cut
- leetcode:331. 验证二叉树的前序序列化
猜你喜欢
C 在函数声明前加typedef
阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
18-GuliMall 压力测试与性能监控
为什么这么多人都想当产品经理?
Tencent continues to wield the "big knife" to reduce costs and increase efficiency, and free catering benefits for outsourced employees have been cut
FileZilla搭建FTP服务器图解教程
聊天尬死名场面,你遇到过吗?教你一键获取斗图表情包,晋升聊天达人
Kubernetes Service对象
leetcode 刷题日记 计算右侧小于当前元素的个数
用PLSQL导出Oracle一个表
随机推荐
反射机制篇
跨端技术方案选什么好?
js十五道面试题(含答案)
B. Neighbor Grid
信息系统项目管理师---第十一章项目风险管理历年考题
电脑系统重装后怎么用打印机扫描出文件?
leetcode:332. 重新安排行程
聊天尬死名场面,你遇到过吗?教你一键获取斗图表情包,晋升聊天达人
关于ETL的两种架构(ETL架构和ELT架构)
OSS文件上传
leetcode brush questions diary Calculate the number of elements on the right that is less than the current element
A. Common Prefixes
Swift 需求 如何防止把view重复添加到win里面
金山云地震,震源在字节?
ArrayList 和 LinkedList 区别
Redis
Analyze the Add() method in Fragment management from the source code
【Apifox】为什么如此受青睐,此篇文章和大家分享
shell数组
PyQt5:入门使用教程