【程式設計題】基本字串壓縮
阿新 • • 發佈:2018-12-10
[程式設計題]基本字串壓縮
- 熱度指數: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(); } }