leetcode-day07-字符串

反轉(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)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容