当前位置:网站首页>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;
}
}
边栏推荐
猜你喜欢
随机推荐
金山云地震,震源在字节?
Flask introductory learning tutorial
深度剖析 Apache EventMesh 云原生分布式事件驱动架构
制定量化交易策略的基本步骤有哪些?
In-depth analysis of Apache EventMesh cloud-native distributed event-driven architecture
注意力引导网络用于视网膜图像分割
R语言修改dataframe数据列的名称:使用dplyr包的rename函数修改列名、使用colnmaes函数修改列名、在数据筛选的时候重命名列名
Common commands and technical function modules of Metasploit
Good future, want to be a second new Oriental
Evolution of MLOps
js array object deduplication
leetcode:319. 灯泡开关
leetcode:321. 拼接最大数
大型分布式存储方案MinIO介绍,看完你就懂了!
three.js镂空圆球拖拽变形js特效
任务流执行器是如何工作的?
一文让你快速了解隐式类型转换【整型提升】!
typedef和#define的花里胡哨的用法
JS Deobfuscation - AST Restoration Case
PyQt5:入门使用教程









