leetcode -----面試題 01.06. 字符串壓縮(javascript解法)

一、題目描述

字符串壓縮。利用字符重複出現的次數,編寫一種方法,實現基本的字符串壓縮功能。比如,字符串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
};



五、結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章