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

劍指Offer——翻轉單詞順序列

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) {
 4
int 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——翻轉單詞順序列