劍指Offer - 翻轉單詞順序列
阿新 • • 發佈:2018-02-15
翻轉單詞 興趣 post subject esc off public 序列 student
題目描述
牛客最近來了一個新員工Fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這家夥原來把句子單詞的順序翻轉了,正確的句子應該是“I am a student.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麽?代碼
class Solution { void mswap(string &str, int left, int right) { if (left >= right) return; while (left < right) { swap(str[left], str[right]); left++; right--; } } public: string ReverseSentence(string str) { string ret = str; int slen = ret.size(); int left = 0; for (int i=1; i<=slen; ++i) {if (ret[i] == ‘ ‘ || i == slen) { mswap(ret, left, i-1); left = i+1; } } mswap(ret, 0, slen-1); return ret; } };
劍指Offer - 翻轉單詞順序列