劍指offer-翻轉單詞序列
阿新 • • 發佈:2021-07-29
描述
牛客最近來了一個新員工Fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“nowcoder. a am I”。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是“I am a nowcoder.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?求解思路:
- 很簡單,通過空格劃分元素(字串),然後把字串倒過來就行。
- 但是看題要仔細,還以為字串內部也要翻轉,浪費了我很多時間。
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 };