日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode--字符串压缩

發布時間:2024/7/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode--字符串压缩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符串壓縮。利用字符重復出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串aabcccccaaa會變為a2b1c5a3。若“壓縮”后的字符串沒有變短,則返回原先的字符串。你可以假設字符串中只包含大小寫英文字母(a至z)。

示例1:

?輸入:"aabcccccaaa"
?輸出:"a2b1c5a3"
示例2:

?輸入:"abbccd"
?輸出:"abbccd"
?解釋:"abbccd"壓縮后為"a1b2c2d1",比原字符串長度更長。

思路:

有一個小坑,數量超過10的x與S比較的位置可能得多移動幾位
提示:

字符串長度在[0, 50000]范圍內。

代碼:

class?Solution?{

????public?String?compressString(String?S)?{

???????if(S.length()==0){

????????????????return?S;

????????????}

????????????StringBuilder?x?=?new?StringBuilder();

????????????x.append(S.charAt(0));

????????????int?i=1,j=0,count=1;

????????????while(i<S.length())

????????????{

????????????????if(x.charAt(j)!=S.charAt(i)){

????????????????????x.append(count);

????????????????????while(count!=0)//需要注意,不是每次添加數字都是j++,有的數量超過10,j就不止移動一位,可能好幾位

????????????????????{

????????????????????????count/=10;

????????????????????????j++;

????????????????????}

????????????????????count=1;

????????????????????x.append(S.charAt(i));

????????????????????j++;

????????????????}else{

????????????????????count++;

????????????????}

????????????????i++;

????????????}

????????????x.append(count);

???????????if(x.length()>=S.length())

????????????{

????????????????return?S;

????????????}

????????????return?x.toString();

????}

}

總結

以上是生活随笔為你收集整理的Leetcode--字符串压缩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。