leetcode 解压缩_leetcode之字符串压缩
序
本文主要記錄一下leetcode之字符串壓縮
題目
字符串壓縮。利用字符重復出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串aabcccccaaa會變為a2b1c5a3。若“壓縮”后的字符串沒有變短,則返回原先的字符串。你可以假設字符串中只包含大小寫英文字母(a至z)。
示例1:
輸入:"aabcccccaaa"
輸出:"a2b1c5a3"
示例2:
輸入:"abbccd"
輸出:"abbccd"
解釋:"abbccd"壓縮后為"a1b2c2d1",比原字符串長度更長。
提示:
字符串長度在[0, 50000]范圍內。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/compress-string-lcci
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
題解
class Solution {
public String compressString(String S) {
if (S == null || S.length() == 0) {
return S;
}
char pre = S.charAt(0);
int count = 1;
StringBuilder result = new StringBuilder();
for (int i=1; i< S.length(); i++) {
char cur = S.charAt(i);
if (cur == pre) {
count++;
} else {
result.append(pre)
.append(count);
pre = cur;
count = 1;
}
}
result.append(pre)
.append(count);
if (result.length() >= S.length()) {
return S;
}
return result.toString();
}
}
小結
這里維護前一個字符及其count的字段,之后從第二個字符開始遍歷,判斷與前一個字符是否相等,相等則累加,不相等則將該字符的壓縮添加到結果中,最后再將最后一個字符的壓縮添加到結果中。
doc
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的leetcode 解压缩_leetcode之字符串压缩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天眼查app如何查找扣扣密码(中国天眼的
- 下一篇: 亿通行怎么开通nfc