題目描述
牛客最近來了乙個新員工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....