知识点
字符串 遍历 STL
思路
从前往后遍历一次字符串,将单词从空格处截断,并且放入栈中。利用栈先进后出的原理,我们可以得到逆序的单词。注意特判多个空格,因为题目中说单词间的空格数不会超过一个,但是实际上报错的样例就存在多个空格
代码c++
#include <unistd.h>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
string reverseWords(string s) {
string k="";
string temp="";
stack<string>st;
int flag=0;
for(int i=0;i<s.length();i++ )
{
if(s[i]!=' ')
{
temp+=s[i];
flag=1;
}
else if(s[i]==' '&&flag==1){
flag=0;
st.push(temp);
temp="";
}
}
st.push(temp);
while(!st.empty())
{
k+=st.top();
st.pop();
if(!st.empty())k+=' ';
}
string ans;
for(int i=0;i<k.size();i++)
{
if(s[0]==' '&&i==0){}
else if(s[k.length()-1]==' '&&i==k.length()-1){}
else ans+=k[i];
}
return ans;
// write code here
}
};