标签:
题目:将一个英文句子翻转,比如: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