1、题目
https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/
2、题意
题解1:双指针 遇到空格翻转s[i]-[j] ps:最后一个字符串要substr(i,j-i+1);
class Solution {
public:
string reverseWords(string s) {
string res = "";
for(int j=0,i=0;j<s.size();j++)
{
if(j==s.size()-1||s[j]==' ')
{
string temp;
if(j==s.size()-1)
temp = s.substr(i,j-i+1);
else
temp = s.substr(i,j-i);
reverse(temp.begin(),temp.end());
res+=temp;
if(j!=s.size()-1)
res+=' ';
i = j+1;
}
}
return res;
}
};
题解2:stack
class Solution {
public:
string reverseWords(string s) {
stack<char> st;
string res = "";
for(int i=0;i<s.size();i++)
{
if(s[i]!=' ')
st.push(s[i]);
if(s[i]==' '||i==s.size()-1)
{
while(st.size())
{
res+=st.top();
st.pop();
}
if(i!=s.size()-1)
res+=' ';
}
}
return res;
}
};