刷題第五天
344. 反轉(zhuǎn)字符串:
簡單題,雙指針l和r,l在前,r在后,交換l和r值,向中間靠近。

541. 反轉(zhuǎn)字符串 II:
對字符串的處理不熟悉。學(xué)到了reverse函數(shù)。
每次從2k位置開始reverse k個字符,如果末尾不滿k個,直接置換到end。

劍指 Offer 05. 替換空格:
學(xué)習(xí)了erase函數(shù)和insert函數(shù)。

151. 反轉(zhuǎn)字符串中的單詞:
感覺這一題純純的考察處理字符串處理能力。我使用了pos標(biāo)記單詞的第一個字母的下標(biāo)。stack<string>存分割下來的每一個單詞。查找每一個字符,如果字符是空格的,如果此時的i不等于pos說明pos到i之間有一個單詞,將單詞記錄下來,再讓pos=i+1。
不過這樣做有一個問題,如果字符串在末尾有單獨(dú)的一個字符作為單詞,那么無法被錄入,因?yàn)榇藭rpos==i。最后一個單詞的最后一個字母同樣無法被錄入。
我嘗試過讓i等于末尾時+1,但會導(dǎo)致如果最后一個字符是空格的話,空格也會錄入。最后,我是在一開始,就在初始字符串后面先加上一個空格,問題就全部解決了。

459. 重復(fù)的子字符串:
這題可以合并兩個s,去掉s的頭尾(ss),如果s是多個子串組成的話,那么ss中可以找到s。

20. 有效的括號:
經(jīng)典括號匹配題,用棧。

1047. 刪除字符串中的所有相鄰重復(fù)項(xiàng):
用棧,遇到top相同的,循環(huán)不斷pop出去,直到top不一樣。
用棧需要特別注意,用top遇到棧empty的時候,會報錯?。?!一定要特別注意,top,pop的時候,棧一定不能為空!?。?/span>
?
標(biāo)簽: