字符串“aabcccccaaa”压缩成“a2b1c5a3“还要返回更小的?力扣面试题 01.06. 字符串压缩讲解
Posted 国家一级建筑师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串“aabcccccaaa”压缩成“a2b1c5a3“还要返回更小的?力扣面试题 01.06. 字符串压缩讲解相关的知识,希望对你有一定的参考价值。
题目信息
解题方法 :双指针遍历
创建ch,让它获取S的第一个字符,定义计数器count初始化为1,接下来让ch和S的下一个字符比较,如果他们相等,count+1,不想等的话,创建一个StringBuilder的实例对象ans,让ans使用append方法,拼接当前的ch,再拼接它的count,让把当前的字符赋给ch,计数器归1,继续进行循环。循环结束后把最后的ch和他的count添加到ans里。返回ans和S.length的较小值。
代码实现
class Solution {
public String compressString(String S) {
if(S.length()==0){
return S;
}
StringBuilder ans=new StringBuilder();
char ch=S.charAt(0);
int count=1;
for (int i = 1; i <S.length() ; i++) {
if(ch==S.charAt(i)){
count++;
}
else {
ans.append(ch);
ans.append(count);
ch=S.charAt(i);
count=1;
}
}
ans.append(ch);
ans.append(count);
return ans.length() >=S.length() ? S: ans.toString();
}
}
如果觉得不错的话,可以看看我的其他题解
怎么把i am a student逆置成student a am i?面试题逆置字符串讲解
什么?动态规划10行求出连续子数组的最大和 剑指offer-42讲解
剑指 Offer 39. 数组中出现次数超过一半的数字 简单易懂14行搞定 。人人皆可会
以上是关于字符串“aabcccccaaa”压缩成“a2b1c5a3“还要返回更小的?力扣面试题 01.06. 字符串压缩讲解的主要内容,如果未能解决你的问题,请参考以下文章