题意 :略
有1个坑。分隔符都是空格 但是不论原来词和词之间有几个空格,转换后的语句词和词之间都只能有1个空格。
思路:用一个栈来存单词(这里的单词不仅包含a-z),首先顺序变量一遍把单词存进去,然后再一个一个弹出来,弹出一个单词加一个空格。
这个可是谷歌校招模拟面试题。。。(估计面试的时候不会问这么简单的)努力努力~。还好方法都是自己想出来的。加油~
代码如下:
class Solution {
public:
void reverseWords(string &s)
{
stack<string> words;
string temp;
int i=0,length=s.length();
while(i<length)
{
if(s[i]==' ')
{
if(temp!="")
{
words.push(temp);
temp="";
}
}
else temp+=s[i];
i++;
}
if(temp!="") words.push(temp);
s="";
while(!words.empty())
{
s+=words.top();
words.pop();
if(!words.empty()) s+=" ";
}
}
};