字符串(3)

案例7
給定一個字符串str,請將其中所有空格字符替換成“%20”,假設str後面有足夠的空間。
分析:
這裏寫圖片描述
所以從位置8開始,拷貝
c複製到位置8
朝前遍歷,遇到空格,就5-7位置爲%20
朝前遍歷,遇到b,4爲b
朝前遍歷,遇到空格,就1-3爲%20
朝前遍歷,遇到a,0爲a
結束。

案例8
給定一個字符串str,判斷是不是整體有效的括號字符串。
例子:
爲true:“()”“(())”“(()())”
爲false:”())” “()(”

最優解時間複雜度O(N),額外空間複雜度O(1)。
過程:
1.整形變量num,代表’(‘次數與’)’出現次數的差值。
2.遍歷中遇到’(‘,則num++。
3.遍歷中遇到’)’,則num–。
4.遍歷中若num<0,則爲false。
6.遍歷完成後,若num==0,true,否則爲false。

案例9
給定一個字符串str,返回最長無重複字符子串的長度

舉例:
abcd 返回4
abcb 返回3

最優解時間複雜度O(N),額外空間複雜度O(N)。
思路:求出str中每個字符結尾的情況下,最長無重複字符子串的長度,並在其中找出最大值返回。
兩個變量輔助求解:哈希表map和整形變量pre。
這裏寫圖片描述
pre兩種可能
可能1:
這裏寫圖片描述
可能2:
這裏寫圖片描述
循環刷新並比較map和pre,得出最長子串長度。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章