码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】Reverse Words in a String

时间:2014-05-22 18:49:26      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:leetcode   algorithm   string   

问题:给定一个字符串,字符串中包含若干单词,每个单词间由空格分隔,将单词逆置,即第一个单词成为最后一个单词,一次类推。

说明:字符串本身可能包含前导空格或后导空格,单词间可能包含多个空格,要求结果中去掉前导和后导空格,单词间空格只保留一个。


与rotate函数类似,先逆置每个单词,再将所有字符串逆置。

 void reverseWords(string &s) {

	if(s.size() == 0) return;
	char blank = ' ';
	size_t len = s.size();
	size_t begin = s.find_first_not_of(blank);
	size_t end = s.find_last_not_of(blank);

	//erase(start,len);
	s.erase(end + 1, len - end);
	s.erase(0,  begin);

	string::iterator sit1 = s.begin();
	while (sit1 != s.end())
	{
		string::iterator cur = sit1;
		
		while(cur != s.end() && *cur == blank ){
			s.erase(cur);
		}
		//get 
		while(cur != s.end() && *cur != blank ) ++cur;
		reverse(sit1, cur);

		if(cur != s.end())
			++cur;
		sit1 = cur;
		   
	}

	reverse(s.begin(), s.end());
	return;
}


【leetcode】Reverse Words in a String,布布扣,bubuko.com

【leetcode】Reverse Words in a String

标签:leetcode   algorithm   string   

原文地址:http://blog.csdn.net/shiquxinkong/article/details/26502433

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!