1. 程式人生 > >劍指Offer - 翻轉單詞順序列

劍指Offer - 翻轉單詞順序列

翻轉單詞 興趣 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 - 翻轉單詞順序列