题目:将一个英文句子翻转,比如: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();
		}
	}
};

  

最新文章

  1. STL基础
  2. java实现的类和表持久化
  3. 关于STM8的用户数据空间读写问题
  4. Vim杂记:Sublime的配色方案
  5. hdu4547 lca tarjan
  6. ZOJ 3407 Doraemon&#39;s Cake Machine [数学]
  7. 从一次面试经历谈PHP的普通传值与引用传值以及unset
  8. mysql索引需要了解的几个注意
  9. Liferay环境搭建实录
  10. java中数组与List相互转换的方法
  11. IDEA阅读Spark源码
  12. android:inputType常用取值
  13. Class.jsp
  14. 文件在线预览doc,docx转换pdf(一)
  15. VSCode插件开发全攻略(六)开发调试技巧
  16. js小方法积累,将一个数组按照n个一份,分成若干数组
  17. 【iCore4 双核心板_ARM】例程三十一:HTTP_IAP_FPGA实验——更新升级FPGA
  18. web前端学习历程--排序
  19. 【iCore4 双核心板_FPGA】例程一:GPIO输出实验——点亮LED
  20. 理解IOC

热门文章

  1. 反射操作辅助类ReflectionUtil
  2. .NET进阶系列之一:C#正则表达式整理备忘
  3. printf--动态指定输出格式长度
  4. python连接redis文档001
  5. SQL Server 查看数据库空间分配情况的 2 种方法
  6. Git学习01 --git add, git commit , git log ,git status, git reset --hard, head
  7. inet address example(socket)
  8. 【HDU 4463 Outlets】最小生成树(prim,kruscal都可)
  9. 从ora10g 刷数据到 8I基本操作步骤
  10. Error: Linux下 mysql.sock文件丢失被删除解决方法