标签:
题目:将一个英文句子翻转,比如:the sky is blue 翻转后变为:blue is sky the
分析:我的实现方法是,利用栈将单词存储起来,然后再顺序拿出来,单词进栈还需注意添加空格。
主要代码:
class Solution {
public:
void reverseWords(string &s) {
stack<string> mStack;
string mString = "";
bool flag = false;//false 表示遇到空格,true表示正在读一个单词
int mStringLength = s.length();
for (int i=0;i<mStringLength;++i)
{
//获取一个单词
if (s[i] != ‘ ‘)
{
flag = true;
mString += s[i];
}
//将一个单词入栈
if ((s[i] == ‘ ‘ || i == mStringLength-1) && flag == true)
{
mStack.push(mString);
flag = false;
mString = "";
mStack.push(" ");
}
}
mStack.pop();//将最后一个空格丢掉
//将s中的单词反置
s.clear();
while(!mStack.empty())
{
s.append(mStack.top());
//s += mStack.top();
mStack.pop();
}
}
};
标签:
原文地址:http://www.cnblogs.com/huzongzhe/p/ReverseWorldString.html