题目描述
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
为简单起见,标点符号和普通字母一样处理。
例如输入字符串”I am a student.”,则输出”student. a am I”。
样例
输入:”I am a student.”
输出:”student. a am I”
算法1
用了栈,感觉可能不太好;
C++ 代码
class Solution {
public:
string reverseWords(string s) {
stack<int> stk;
string res;
for (int i = s.size() - 1; i >= 0; i --)
{
if (s[i] != ' ')stk.push(s[i]);
else
{
while (!stk.empty())
{
res.push_back(stk.top());
stk.pop();
}
res.push_back(s[i]);
}
}
while (!stk.empty())
{
res.push_back(stk.top());
stk.pop();
}
return res;
}
};