1. 程式人生 > 其它 >劍指offer-翻轉單詞序列

劍指offer-翻轉單詞序列

描述

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

求解思路:

  1. 很簡單,通過空格劃分元素(字串),然後把字串倒過來就行。
  2. 但是看題要仔細,還以為字串內部也要翻轉,浪費了我很多時間。
 1 class Solution {
 2 public:
 3     string
ReverseSentence(string str) { 4 // 首先得通過空格劃分哪些字元屬於一個整體(字串) 5 // 然後翻轉子串 6 vector<string> strv; 7 string::iterator ite=str.begin(); 8 string tmp=""; 9 // 完成子串的劃分 10 while(ite!=str.end()){ 11 if(*ite!=' '){ // 如果不是空格,就劃分到字串中 12 tmp+=*ite;
13 }else{ 14 strv.push_back(tmp); 15 tmp=""; 16 } 17 ++ite; 18 } 19 strv.push_back(tmp); 20 // 翻轉 21 int rec=strv.size()-1; 22 string res=""; 23 while(rec>=0){ 24 res+=strv[rec]+'
'; 25 --rec; 26 } 27 return res.substr(0, res.length() - 1); 28 } 29 };
心之所願,永不相忘