翻转字符串里面的单词
程序员文章站
2022-06-15 11:55:59
一道很简单的水题,不过没有想到O(1)时间复杂度的方法,代码如下: #include #include #include #include #include using namespace std; ......
一道很简单的水题,不过没有想到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; }