字元串壓縮
字元串壓縮。利用字元重複出現的次數,編寫一種方法,實作基本的字元串壓縮功能。比如,字元串
aabcccccaaa
會變為
a2b1c5a3
。若“壓縮”後的字元串沒有變短,則傳回原先的字元串。你可以假設字元串中隻包含大小寫英文字母(a至z)。
示例1:
輸入:"aabcccccaaa"
輸出:"a2b1c5a3"
示例2:
輸入:"abbccd"
輸出:"abbccd"
解釋:"abbccd"壓縮後為"a1b2c2d1",比原字元串長度更長。
提示:
- 字元串長度在[0, 50000]範圍内。
Java題解
第一行代碼說明一下,力扣官方的參數是一個大寫S,看着實在變扭換成小寫的了而已,沒有實際意義。
後面就是通過逐個比較并記錄實作的。
public static String compressString(String S) {
String s = S;
StringBuilder sb = new StringBuilder();
int num = 0;
Character last = null;
for (char b : s.toCharArray()) {
if(last == null){
last = b;
}
if(last == b){
num++;
}else{
sb.append(last).append(num);
num = 1;
last = b;
}
}
sb.append(last).append(num);
return sb.length() >= s.length() ? s : sb.toString();
}