42翻轉單詞順序列 注意該題找單詞的方法

2022-07-29 02:45:08 字數 1166 閱讀 2368

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

思路:兩步反轉法,先整體反轉,然後每個單詞進行反轉。

找單詞的方法是找相應的空格。

如果start的位置是空格就++,如果end的地方是空格就--或者是末尾結束符,就進行反轉,一定要記得自己定義乙個反轉函式。

其他在單詞中間的情況就++end。找空格。

class

solution

}string reversesentence(string

str)

helper(str,

0,str.size() - 1

);

int start = 0,end = 0

;

while(str[start] != '\0'

)

else

if(str[end] == '

' || str[end] == '\0'

)

else

}return

str;

}};

這道題目還有進一步的變式題,就是兩個單詞之間有很多空格,最後只輸出乙個空格,這題的話,可以使用istringstream in(string),然後自己依據空格分割每乙個單詞,儲存到乙個陣列裡面,再從最後乙個單詞開始開始拼接,就得到了結果。

class

solution

istringstream ss(s);

string

tmp, result;

vector

no_space;

while (ss >>tmp)

if(no_space.size() == 0

)

inti;

for (i = no_space.size() - 1; i > 0; --i)

return

result;

}};

翻轉單詞順序列(第44題)

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

劍指Offer 程式設計題 翻轉單詞順序列

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

《劍指offer》面試題42 翻轉單詞順序列

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