一、題目描述
字符串壓縮。利用字符重複出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串aabcccccaaa會變爲a2b1c5a3。若“壓縮”後的字符串沒有變短,則返回原先的字符串。你可以假設字符串中只包含大小寫英文字母(a至z)。
二、示例
示例1:
輸入:“aabcccccaaa”
輸出:“a2b1c5a3”
示例2:
輸入:“abbccd”
輸出:“abbccd”
解釋:“abbccd"壓縮後爲"a1b2c2d1”,比原字符串長度更長。
提示:字符串長度在[0, 50000]範圍內。
三、解題思路
使用單詞循環遍歷,每次和前一個比較,若相同count++,負責將結果和字符串賦值給str,最後比較str的額長度和給定字符串長度,若短則輸出。
四、代碼
/**
* @param {string} S
* @return {string}
*/
var compressString = function(S) {
var count = 1
var str= ''
for(let i = 1 ; i < S.length ; i++){
if(S[i] === S[i-1]){
count++
}else{
str += S[i-1] + count
count = 1
}
}
str += S[S.length-1] +count;
return str.length<S.length?str:S
};