leetcode 面試題01 06 字串壓縮

2021-10-10 15:20:47 字數 1140 閱讀 5560

題目:

分析:

字串壓縮的方式就是將連續出現的相同字元按照 字元 + 出現次數 壓縮。如果壓縮後的字串長度變短,則返回壓縮後的字串,否則保留原來的字串,所以我們模擬這個過程構建字串即可

步驟:

定義乙個變數,記錄字元長的長度,定義乙個字元變數,記錄0號位置的元素,定義乙個新字串,用於記錄壓縮後的字串,定義乙個指標變數i,指向0號位置,定義乙個計數器

在乙個指標變數i小於字串長度的情況下迴圈

另外定義乙個指標變數j,其值等於上乙個指標變數(i)指向的位置,在小於等於字串長度的情況下迴圈

如果此時j指向的字元等於目標字元,就讓計數器加1,j加1;如果不等於,就讓字元和數字新增到新字串,字元變數指向現在的字元,計時器清零,此時i變為j,停止此次迴圈。這時i的值發生變化,進行下一次迴圈

注意:

i的值是依靠j的值進行變化的,當j指向的變數發生改變,目標變數就發生改變,重新計數

}優化**:

string compressstring

(string s)

} ans +

= ch +

to_string

(cnt)

;return ans.

length()

>= s.

length()

? s : ans;

}繼續優化

string compressstring

(string s)

}return t.

size()

>= len ? s : t;

}

leetcode面試題 01 06 字串壓縮

字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 輸入 ab...

LeetCode 面試題01 06 字串壓縮

字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 輸入 ab...

LeetCode 面試題 01 06 字串壓縮

字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 class sol...