反轉(zhuǎn)字符串

題解:
使用雙指針,從數(shù)組的兩端開(kāi)始,進(jìn)行對(duì)換
代碼:

反轉(zhuǎn)字符串 ii

題解:
套用上題的反轉(zhuǎn)方法,將字符串列表化;題意的意思是計(jì)數(shù)至2k,那我們每次遍歷至2k,即遍歷的步長(zhǎng)為2k,然后判斷是否有反轉(zhuǎn)的區(qū)間
代碼:

劍指Offer 05.替換空格

題解:
本題可以使用雙指針,將字符串列表化,然后擴(kuò)容列表的大小,擴(kuò)充的大小是原字符串中空格的2倍,具體原因,我在代碼中已寫明,然后定義兩個(gè)指針left 和right,left指向原列表的末尾,right指向擴(kuò)充后的列表的末尾,當(dāng)left指針指向的不是空格的時(shí)候,將當(dāng)前的放到right指針指向,當(dāng)left指針指向的是空格時(shí),right指針需要放下‘%20’,占3個(gè)字符
代碼:

劍指 Offer 58 - II. 左旋轉(zhuǎn)字符串

題解:
1.反轉(zhuǎn)區(qū)間為前n的子串
2.反轉(zhuǎn)區(qū)間為n到末尾的子串
3.反轉(zhuǎn)整個(gè)子串
代碼:

反轉(zhuǎn)字符串中的單詞

題解:
不使用輔助空間
1.移除多余空間,不僅僅只是字符串兩頭的空格,還有字符串中的多余空格,可以將字符串放入列表中,逐個(gè)遍歷,當(dāng)前字符是空格的時(shí)候,我們也要判斷列表中的末尾是不是已經(jīng)有了空格,若是有了就不用加入到列表了
2.將整個(gè)字符串反轉(zhuǎn),這個(gè)使用雙指針即可,從兩頭開(kāi)始,兩兩交換,注意,第一步返回的是列表,此步驟操作的是列表
3.將每個(gè)單詞反轉(zhuǎn),難點(diǎn)就是找到每個(gè)單詞,我們判斷有空格的時(shí)候記錄這個(gè)下標(biāo),然后調(diào)用第二步的方法進(jìn)行這個(gè)區(qū)間的字符串反轉(zhuǎn)
