1. 程式人生 > >【程式設計題】基本字串壓縮

【程式設計題】基本字串壓縮

[程式設計題]基本字串壓縮

  • 熱度指數:58188 時間限制:3秒 空間限制:32768K

利用字元重複出現的次數,編寫一個方法,實現基本的字串壓縮功能。比如,字串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字串沒有變短,則返回原先的字串。

給定一個string iniString為待壓縮的串(長度小於等於10000),保證串內字元均由大小寫英文字母組成,返回一個string,為所求的壓縮後或未變化的串。

測試樣例

"aabcccccaaa"
返回:"a2b1c5a3"
"welcometonowcoderrrrr"
返回:"welcometonowcoderrrrr"

程式碼實現:

import java.util.*;

public class Zipper {
    public String zipString(String iniString) {
        // write code here
        if (iniString == null || iniString.trim().length() == 0)
            return "";
        StringBuilder sb = new StringBuilder();
        char[] iniStr = iniString.toCharArray();
        char pre = iniStr[0];
        int count = 1;
        for(int i = 1; i < iniStr.length; i++)
        {
            if(iniStr[i] == pre)
            {
                count++;
            }
            else
            {
                sb.append(pre + "" + count);
                count = 1;
                pre = iniStr[i];
            }
        }
        sb.append(pre + "" + count);
        if(sb.toString().length() >= iniString.length())
        {
            return iniString;
        }
        return sb.toString();
    }
}