1 6 字串壓縮

2021-10-03 06:19:01 字數 733 閱讀 4825

//c++ code//

intcomputecompressedlength

(const string& s)

}return compressedlength;

}string stringcompression

(const string& s)

std::string compressed

(compressedlength,

'_')

;int countconsecutive =0;

int compressedindex =0;

for(

int i =

0; i < s.

size()

; i++)}

return compressed;

}

演算法首先計算壓縮後字串的長度,如果壓縮後的字串的長度比原有的字串還要長則返回原字串。不然則首先建立乙個與壓縮後字串大小相同的初始字串,之後再修改該字串來生成最後的壓縮後的字串,這樣做的目的應該是在字串後新增字元時防止字串空間不足時而重複的分配空間和複製的操作,這樣會增加時間複雜度。

之後遍歷原字串中的每乙個字元,當當前字元與下乙個字元不同或者當前字元為最後乙個字元時,將當前字元和其重複的個數構成乙個新的字串並新增到開始建立的初始字串。

該演算法的時間複雜度為o(n),n為輸入字串的大小。演算法的空間複雜度為o(n),n為壓縮後的字串的大小。

213 字串壓縮

原題 例如,字串aabcccccaaa可壓縮為a2b1c5a3。而如果壓縮後的字元數不小於原始的字元數,則返回原始的字串。可以假設字串僅包括a z的字母。您在真實的面試中是否遇到過這個題?是 str aabbcc返回aabbcc str aaaa返回a4 標籤 字串處理 思路 設定乙個字元標誌,初始...

16 字串比較函式

字串處理函式 strcmp s1,s2 可以比較兩個字串的大小,其字元的大小是以 ascii 碼表上的順序決定。該函式首先將 s1 第乙個字元值減去 s2 的第乙個字元值,若差值為 0 則繼續比較對應的下乙個字母,若不為 0 則該差值就是函式的最終結果。請按照該函式的實現原理,寫出乙個新的字串比較函...

LeetCode 16 字串相乘

題目描述 給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於1...