[LeetCode]面试题 01.06. 字符串压缩
2024-10-09 15:28:38
题目
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。
示例1:
输入:"aabcccccaaa"
输出:"a2b1c5a3"
示例2:
输入:"abbccd"
输出:"abbccd"
解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
提示:
字符串长度在[0, 50000]范围内。
题解
用两个指针i、j维护连续的数字区间
字符变化/最后到结尾,采用的操作一样,所以统一处理。
代码
class Solution {
public String compressString(String S) {
if(S == null){
return null;
}
StringBuilder newStr = new StringBuilder();
int i = 0;
while(i < S.length()){
int j = i;
while(j < S.length() && S.charAt(i) == S.charAt(j)){
++j;
}
newStr.append(S.charAt(i));
newStr.append(j - i);
i = j;
}
return newStr.toString().length() <S.length()?newStr.toString():S;
}
}
最新文章
- fastclick 源码注解及一些基础知识点
- 如何在Sublime text中运行PHP文件
- C++模板元编程 - 2 模仿haskell的列表以及相关操作
- http://jingyan.baidu.com/article/e4511cf33479812b855eaf67.html
- centos上安装rabbitmq并且python测试
- Oracle 向上递归、向下递归
- 模型驱动 ModelDriven
- 师兄写的一个JAVA播放器的源代码(转)
- 转战Hexo
- Java历程-初学篇 Day01初识java
- Snapde一个全新的CSV超大文件编辑软件
- centos7 永久添加静态路由
- C#等同于正则表达式的写法
- linux运行进程实时监控pidstat详解
- springMVC(二): @RequestBody @ResponseBody 注解实现分析
- 如何用新安装的jdk替换掉Linux系统默认jdk
- openJDK环境搭建编译(fedora)
- 【论文笔记】多任务学习(Multi-Task Learning)
- JSON学习笔记-2
- JavaScript中的arguments详解
热门文章
- # 火题小战 A.玩个球
- Oracle用户授权
- [C#] (原创)一步一步教你自定义控件——02,ScrollBar(滚动条)
- Java中对象和对象引用的区别,引用、指向是什么意思
- 数据结构与算法笔记(java)目录
- Scala中做简易wordCount
- springMVC入门(八)------拦截器
- dcoker 小应用(二)
- Linux下安装mysql时报错:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper
- springboot-swagger配置