LeetCode 字串壓縮

2021-10-03 22:46:17 字數 1234 閱讀 7158

題目

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

示例1:

輸入:「aabcccccaaa」

輸出:「a2b1c5a3」

示例2:

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

解答:

string compressstring

(string s)

if(f.

size()

>= s.

size()

)return s;

else

return f;

}

運用迭代器就可以很好的表示。

需要注意的有:

c++11標準中新加的包含在標頭檔案中的to_string()函式非常的香,可以把double、int等轉為string。

2.要寫成(y != s.end())&& (*y == *x))而不是 ( (*y == *x)&&(y != s.end())),運用其斷路特性,避免訪問 *s.end()。

c++11字串和數字轉換的函式:

to_string(val) 返回數值val的string表達。val可以為任何算數型別。

stoi(s,p,b) stol(s,p,b) stoul(s,p,b) stoll(s,p,b) stoull(s,p,b) stof(s,p,b) stod(s,p,b) stold(s,p,b) 返回s的起始子串表示數內容的數值。以上幾個函式分別對應int、long、unsigned long、long long、unsigned long long、float、double、long double。b表示轉換所用的基數,預設是10。p是size_t指標,用來儲存s中第乙個非數值字元的下標,p的預設值是0,即函式不儲存下標。

string s2 =

"pi = 3.14"

; string s =

"23.2"

;double d =

stod

(s2.

substr

(s2.

find_first_of

("+-.0123456789"))

);double sda =

stod

(s);

LeetCode 壓縮字串

給定一組字元,使用原地演算法將其壓縮。壓縮後的長度必須始終小於或等於原陣列長度。陣列的每個元素應該是長度為1 的字元 不是 int 整數型別 在完成原地修改輸入陣列後,返回陣列的新長度。高階 你能否僅使用o 1 空間解決問題?示例 1 輸入 a a b b c c c 輸出 返回6,輸入陣列的前6個...

leetcode 壓縮字串

給定一組字元,使用原地演算法將其壓縮。壓縮後的長度必須始終小於或等於原陣列長度。陣列的每個元素應該是長度為1 的字元 不是 int 整數型別 在完成原地修改輸入陣列後,返回陣列的新長度。示例 1 輸入 a a b b c c c 輸出 返回6,輸入陣列的前6個字元應該是 a 2 b 2 c 3 說明...

LeetCode 壓縮字串

題目描述 給定一組字元,使用原地演算法將其壓縮。壓縮後的長度必須始終小於或等於原陣列長度。陣列的每個元素應該是長度為1 的字元 不是 int 整數型別 在完成原地修改輸入陣列後,返回陣列的新長度。高階 你能否僅使用o 1 空間解決問題?示例 1 輸入 a a b b c c c 輸出 返回6,輸入陣...