`
yiheng
  • 浏览: 151160 次
社区版块
存档分类

微软等数据结构与算法面试100题 第十题

阅读更多

第十题


翻转句子中单词的顺序。

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。

句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。


分析:

可以根据空格符将单词分开,然后针对每个单词进行操作,string类型的有很多库函数,比如可以实现分割string类型的字符串。

这里使用c++实现,本来是想使用split函数进行分割的,但是MSDN上string对象成员函数http://msdn.microsoft.com/zh-cn/library/b873y76a%28v=vs.80%29

split函数示例运行不对,然后就采用查找空格来分割。希望有大牛指出split成员函数的问题。


代码如下:

#include<iostream>
#include<string>

using namespace std;
using std::string;

void reverseSequence(string & words)
{
	int lengthWords = words.length();
	if(0==lengthWords) return;
	
	char temp;
	//reverse all the words
	for(int i =0; i < lengthWords/2; i++)
	{
		temp = words.at(i);
		words.at(i) = words.at(lengthWords-1-i);
		words.at(lengthWords-1-i) = temp;
	}

	
	//conduct statistics
	int wordsNum = 0;
	for(int i = 0; i < words.length(); i++)
	{
		if(words.at(i)==' ')
			wordsNum++;
	}
	wordsNum = wordsNum + 1;

	int *arrayLength = new int[wordsNum];
	for(int i =0 ; i < wordsNum; i++)arrayLength[i] = 0;
	int j = 0;
	for(int i = 0; i < lengthWords; i++)
	{
		if(' '!=words.at(i))arrayLength[j]++;
		else j = j + 1;
	}

	//reverse each words
	int index;
	int currentIndex = 0;
	for(int i =0 ; i < wordsNum; i++)
	{
		index = currentIndex; 
		while(index<arrayLength[i]/2 + currentIndex)
		{
			temp = words.at(index);
			words.at(index) = words.at(currentIndex+currentIndex+arrayLength[i]-1-index);
			words.at(currentIndex+currentIndex+arrayLength[i]-1-index)=temp;
			index++;
		}
		currentIndex = currentIndex + arrayLength[i] + 1;
	} 
 
}


int main()
{
	string a = "i am a student";
	for(int i=0;i<a.length();i++)cout<<a.at(i);
	cout<<endl;

	reverseSequence(a);
	for(int i=0; i<a.length();i++)cout<<a.at(i);
	cout<<endl;
	return 0;
}


更多详细信息请查看java教程网 http://www.itchm.com/forum-59-1.html
分享到:
评论

相关推荐

    [最新答案V0.4版]微软等数据结构+算法面试100题[第41-60题答案]

    [答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //第61-100题答案、思路,正在整理中。 更多资源,下载地址: http://v_july_v.download.csdn.net/谢谢。 ...

    [最新整理公布][汇总II]微软等数据结构+算法面试100题[第1-80题]

    2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题...

    [汇总I]精选微软等数据结构+算法面试100题[第1-60题]

    3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25...

    微软等数据结构+算法面试100题全部答案集锦

    一年之前的10月14日,一个名叫July 的人在一个叫csdn 的论坛上开帖分享微软等公司数据结构+算法 面试100题,自此,与上千网友一起做,一起思考,一起解答这些面试题目,最终成就了一个名为:结构之法 算法之道的编程...

    [第二部分]精选微软等公司结构+算法面试100题[41-60题]

    3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25...

    [珍藏版]微软等数据结构+算法面试100题全部出炉[100题V0.1最终完美版]

    6.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100题[前25...

    [答案V0.2版]精选微软数据结构+算法面试100题[前20题]

    3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25...

    新鲜出炉:微软等数据结构+算法面试100题第81-100题[V0.1版最后20题]

    微软等数据结构+算法面试100题最后20题第81-100题新鲜出炉 ---100题系列V0.1版完整公布 作者:July 时间:2010年12月5日 ============= 首先,非常感谢各位,对本微软面试100题系列前期工作的大力支持。 很多很多...

    [第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题]

    3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25...

    微软面试100题系列之高清完整版PDF文档[带目录+标签]by_July

    本微软面试100题系列,共计11篇文章,300多道面试题,截取本blog索引性文章:程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦:http://blog.csdn.net/v_july_v/article/details/6543438,中的第一部分...

    微软、谷歌、百度、腾讯等各大公司笔试

    整理研究者July博客部分面试笔试题,http://blog.csdn.net/v_JULY_v,包括微软百度谷歌腾讯等公司的经典笔试面试题,全部已整理为pdf文档,感谢July。...微软公司等数据结构+算法面试100题(第1-100题)全部出炉.pdf

    数据结构 微软面试

    一年之前的10月14日,一个名叫July 的人在一个叫csdn 的论坛上开帖分享微软等公司数据结构+算法 面试100题,自此,与上千网友一起做,一起思考,一起解答这些面试题目,最终成就了一个名为:结构之法 算法之道的...

    程序员面试金典-卷二

    第8~9 章从数据结构、概念与算法、知识类问题和附加面试题4 个方面,为读者呈现了出自微软、苹果、谷歌等多家知名公司的150 道编程面试题,并针对每一道面试题目,分别给出了详细的解决方案。 本书适合程序开发和...

    程序员面试金典-卷一

    第8~9 章从数据结构、概念与算法、知识类问题和附加面试题4 个方面,为读者呈现了出自微软、苹果、谷歌等多家知名公司的150 道编程面试题,并针对每一道面试题目,分别给出了详细的解决方案。 本书适合程序开发和...

    java 面试题 总结

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

    算法之道--CSDN博客博文集锦第一期CHM文件

    此份文件是截止到2011年2月27日,结构之法算法之道博客内的第一期的全部内容的...本文件包含了十个经典算法的研究,微软面试的全部100 题,及前60 的答案。包括结构之法算法之道内的17 篇已经被推荐到CSDN 首页的文章。

    leetcode中文版-Algorithms_Of_Interview:计算机视觉算法工程师面试中手撕代码的算法题总结

    计算机视觉算法工程师面试中手撕代码的算法题总结 微软、商汤、旷视、头条、阿里、腾讯、百度、海康威视、第四范式算法岗,其他公司和岗位的不在此之列。 开始先大概整理,后面会分类 数据结构类 算法类 1.x的n次方...

    leetcode走迷宫-Algorithms-in-Go:我在Go中的数据结构和算法实现

    leetcode 走迷宫 algorithms-in-go my implementations in go 学习资料 [剑指offer] 趣味应用类算法 迷宫生成 正则匹配 剑指offer 题目 ...微软变形面试题1 bfs 走迷宫 - imooc google eng 第十二章

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    经典C/C++面试题目大汇总(全附答案).doc

    doc格式,60多页吧,几百道题吧,都有答案吧,看好在下! 部分: 1.求下面函数的返回值(微软) int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } ...

Global site tag (gtag.js) - Google Analytics