程式設計師面試金典 面試題01 06 字串壓縮

2021-10-05 06:12:12 字數 742 閱讀 3548

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

示例1:

輸入:"aabcccccaaa"

輸出:"a2b1c5a3"

示例2:

字串長度在[0, 50000]範圍內。

字串壓縮的方式就是將連續出現的相同字元按照字元 + 出現次數壓縮。如果壓縮後的字串長度變短,則返回壓縮後的字串,否則保留原來的字串。

本題如果使用string型別的物件很容易實現,即按照壓縮方式將給定字串壓縮,最後再比較壓縮前後字串的長度,返回長度較短的字串即可。為了避免string物件隨著長度不斷增加,而帶來的儲存空間的再分配和複製的問題,可以動態申請固定長度的動態陣列來完成上述過程。

class solution 

if(j >= len)

return s;

//記錄下乙個字元

程式設計師面試金典 面試題 01 06 字串壓縮

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

程式設計師面試金典 面試題 08 09 括號

括號。設計一種演算法,列印n對括號的所有合法的 例如,開閉一一對應 組合。說明 解集不能包含重複的子集。例如,給出 n 3,生成結果為 dfs搜尋,如果當前左括號用超了,右括號用超了,或者右括號的數量大於左括號的數量直接返回。而如果左右括號剛好用盡,代表生成乙個結果,記錄下來。然後就是遞迴,新增左括...

程式設計師面試金典 面試題 08 13 堆箱子

堆箱子。給你一堆n個箱子,箱子寬 wi 高hi 深di。箱子不能翻轉,將箱子堆起來時,下面箱子的寬度 高度和深度必須大於上面的箱子。實現一種方法,搭出最高的一堆箱子。箱堆的高度為每個箱子高度的總和。輸入使用陣列 wi,di,hi 表示每個箱子。示例1 輸入 box 1,1,1 2,2,2 3,3,3...