劍指Offer——翻轉單詞順序列
阿新 • • 發佈:2017-11-01
int 翻轉單詞順序 一個 class swap eve ever urn enc
題目描述:
牛客最近來了一個新員工Fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這家夥原來把句子單詞的順序翻轉了,正確的句子應該是“I am a student.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麽?
分析:
同上一題的解法。劍指Offer——左旋轉字符串。
代碼:
1 class Solution { 2 public: 3 string ReverseSentence(string str) { 4int strLen = str.length(); 5 int i = 0, j = 0; 6 for(int k = 0; k < strLen; k++) { 7 while(k < strLen && str[k] == ‘ ‘) k++; 8 i = k; 9 while(k < strLen && str[k] != ‘ ‘) k++; 10 j = k - 1; 11 ReverseString(str, i, j);12 } 13 ReverseString(str, 0, strLen - 1); 14 return str; 15 } 16 void ReverseString(string &str, int left, int right) { 17 while(left < right) swap(str[left++], str[right--]); 18 } 19 };
劍指Offer——翻轉單詞順序列