[LeetCode]557. Reverse Words in a String III
题目描述
思路
检测到空格,就对之前的单词reverse即可
代码
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
void reverseWord(string &s, int i, int j) {
while (i < j) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
++i, --j;
}
}
string reverseWords(string s) {
int pre = 0;
for (int i = 0; i < s.size(); ++i) {
if (i > 0 && s[i] == ' ') {
reverseWord(s, pre, i - 1);
if (i + 1 < s.size())
pre = i + 1;
}
if (i == s.size() - 1 && s[i] != ' ')
reverseWord(s, pre, i);
}
return s;
}
};
int main() {
string s = "Let's take LeetCode contest";
Solution sol;
cout << sol.reverseWords(s) << endl;
system("pause");
return 0;
}