一道很簡單的水題,不過沒有想到O(1)時間復雜度的方法,代碼如下:
#include <cstdio> #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; string reverseWords(string s); int main() { string s; getline(cin,s); cout << reverseWords(s); return 0; } string reverseWords(string s) { s += ' '; vector<string> stack; string tmp; bool if_push = true; for (int i = 0; i < s.size(); ++i) { if (s[i] == ' ') { if (!if_push) { stack.push_back(tmp); tmp.clear(); if_push = true; } } else { tmp += s[i]; if_push = false; } } for (int i = stack.size() - 1; i > 0; --i) { tmp += stack[i]; tmp += ' '; } if (!stack.empty()) { tmp += stack[0]; } return tmp; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/40793.html
標籤:C++
上一篇:加邊的無向圖--并查集
