classSolution{public String compressString(String S){
String ans ="";int len = S.length();if(S==""|| len==0)return"";if(len ==1)return S;int i =1;char a = S.charAt(0);int num =1;
String n ="";while(i<len){if(S.charAt(i)==a){
num++;
i++;}else{
n = num +"";
ans+=a+n;
a = S.charAt(i++);
num =1;}if( i==len){
n = num +"";
ans+=a+n;}}return ans.length()>=len?S:ans;}}
题解做法:双指针做法
public String compressString(String S){int N = S.length();int i =0;
StringBuilder sb =newStringBuilder();while(i < N){int j = i;while(j < N && S.charAt(j)== S.charAt(i)){
j++;}
sb.append(S.charAt(i));
sb.append(j - i);
i = j;}
String res = sb.toString();if(res.length()< S.length()){return res;}else{return S;}}
作者:nettee
链接:https://leetcode-cn.com/problems/compress-string-lcci/solution/shuang-zhi-zhen-fa-qu-lian-xu-zi-fu-cpython-by-net/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。