劍指offer JZ44 翻轉單詞順序列

2021-10-19 12:04:49 字數 1318 閱讀 8161

題目描述

牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,「student. a am i」。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是「i am a student.」。cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?

示例1輸入

「nowcoder. a am i」

返回值「i am a nowcoder.」

** 1:

public

class

solution

stringbuilder sb =

newstringbuilder()

;char

ch = str.

tochararray()

;int idx =0;

for(

int i =

0; i < ch.length; i++)}

return sb.

tostring()

;}}

思路概述:

因為要翻轉,所以後面的單詞要放到新單詞前面,而在插入同乙個單詞時,每乙個字元要按照原來的順序插入,所以我們定義乙個idx,來記錄當前單詞字元應該插入的位置,當乙個單詞插入完畢時(下乙個單詞為空格或者插入的就是空格),讓idx置為1.

** 2:

public

class

solution

char

ch = str.

tochararray()

;reverse

(ch,

0, ch.length -1)

;int l =0;

for(

int i =

0; i < ch.length; i++)}

reverse

(ch,l,ch.length -1)

;return

newstring

(ch);}

private

void

reverse

(char

ch,

int l,

int r)

}}

思路概述:

先把字串整體翻轉,再把每個單詞單獨翻轉(通過記錄單詞起始位置和空格前乙個位置),要記得最後乙個單詞要單獨操作,因為結尾無空格。

《劍指offer》JZ44翻轉單詞順序列

牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....

《劍指 Offer》 44 翻轉單詞順序

字串 牛客最近來了乙個新員工 fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事 cat 對 fish 寫的內容頗感興趣,有一天他向 fish 借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am ...

劍指offer44 翻轉單詞順序

牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....