LeetCode 字串壓縮(Easy難度)

2021-10-25 18:31:33 字數 1319 閱讀 2148

(做leetcode筆記的第一天)

leetcode的題難度在於需要考慮非常仔細周到。比如這道題。

思路:

給乙個字串,用來進行整合拼接。

給乙個字元,用來記錄當前字元是什麼,和下乙個字元是否相等。

給乙個整數,用來記錄當前字元在當前階段出現了多少次了。

注意事項:

考慮字串是否是空串或是否為null。

考慮這個字元長度是否等於2或1,因為等於2或1的話,壓縮後的長度肯定能夠大於等於原來字元的長度。

記得比較整合後的字串的長度和原來的字串的長度的大小。

**如下:

下面展示一些內聯**片

public

static string compressstring

(string s)

if(s == null)

if(s.

length()

==2|| s.

length()

==1)// 上面都是判斷這個字串的長度,便於提前退出

// 這裡先記錄s的長度,不然後面的for迴圈每次都呼叫很費事兒

int len = s.

length()

;// 這裡我用的stringbuilder,你也可以用stringbuffer。

// 因為string後面拼接的時候會不斷重新開闢空間,費時費記憶體。

stringbuilder res =

newstringbuilder()

;char cur = s.

charat(0

);int num =1;

for(

int i =

1; i < s.

length()

; i++

)else

// 如果迴圈進行到一般的時候,整合的字串長度已經大於等於原來字串的長度,則後面就沒必要進行了

if(res.

length()

>=len)

} res.

(cur)

.(num);if

(s.length()

<=res.

length()

)return res.

tostring()

;}

以上就是我歷經七八次失敗後,總結的,當然肯定肯定還能優化,我也會持續努力,進行優化,了解的大神也可以幫忙點評點評,謝謝 ~ . ~

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,輸入陣...