首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。
admin
2019-03-29
120
问题
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
选项
答案
/////////////////////////////////////////////////////////////////////// // Reverse a string between two pointers // Input: pBegin - the begin pointer in a string // pEnd - the end pointer in a string /////////////////////////////////////////////////////////////////////// void Reverse(char *pBegin, char *pEnd) { if(pBegin == NULL || pEnd == NULL) return; while(pBegin < pEnd) { char temp = *pBegin; *pBegin = *pEnd; *pEnd = temp; pBegin ++, pEnd --; } } /////////////////////////////////////////////////////////////////////// // Reverse the word order in a sentence, but maintain the character // order inside a word // Input: pData - the sentence to be reversed /////////////////////////////////////////////////////////////////////// char* ReverseSentence(char *pData) { if(pData == NULL) return NULL; char *pBegin = pData; char *pEnd = pData; while(*pEnd != ’\0’) pEnd ++; pEnd--; // Reverse the whole sentence Reverse(pBegin, pEnd); // Reverse every word in the sentence pBegin = pEnd = pData; while(*pBegin != ’\0’) { if(*pBegin == ’ ’) { pBegin ++; pEnd ++; continue; } // A word is between with pBegin and pEnd, reverse it else if(*pEnd == ’ ’ || *pEnd == ’\0’) { Reverse(pBegin, --pEnd); pBegin = ++pEnd; } else { pEnd ++; } } return pData; }
解析
由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。
由于本题需要翻转句子,我们先颠倒句子中的所有字符。这时,不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。我们再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然和输入时的顺序保持一致。
还是以上面的输入为例子。翻转“I am a student.”中所有字符得到“.tneduts a ma I”,再翻转每个单词中字符的顺序得到“students. a am I”,正是符合要求的输出。
转载请注明原文地址:https://kaotiyun.com/show/IxmZ777K
0
程序员面试
相关试题推荐
Theimmunesystemisequalincomplexitytothecombinedintricaciesofthebrainandnervoussystem.Thesuccessoftheimmune
ForAmerica’schildrentheeducationsystemisoftenliterallyalottery.ThatisthemainmessageofanewdocumentaryaboutAm
2005年11月15日华为软件研发笔试题。实现一单链表的逆转。
四个工人,四个任务,每个人做不同的任务需要的时间不同,求任务分配的最优方案。(2005年5月29日全国计算机软件资格水平考试——软件设计师的算法题)。
判断单链表中是否存在环(网上说的笔试题)
从当前界面上开始操作,把联机用户min邀请加入到对话框中,开始多用户对话。
若按下Shift键同时用鼠标分别单击幻灯片中的标题、文本和图片对象,则()。A.仅最后单击的对象被选中B.三个对象被同时选中C.仅标题对象被选中D.仅图形对象被选中
在PPoint中,被选中对象虚框上的8个小方框称为()。A.尺寸控制点B.文本插入点C.有效区域范围D.选中对象标记
请在当前幻灯片中的图形前添加一个形状,并输入“技术部”。
任何一个团队从开始组建到最终达到绩效要求,需要一个周期。依据塔克曼群体发展模型,结合IT服务管理工作特性,将团队建设周期分为四个阶段,它们分别是(未按正确次序排列):①风暴期②表现期③组建期④规范期团队建设周期的正确排序为______。
随机试题
以下所列各项,属于流动资产项目的有()
主体功能区以是否适宜或如何进行大规模高强度工业化城镇化开发为基准划分为()。
可充气的袖珍气体打火机
货币市场基金的主要投资产品有()。
甲公司为国有独资公司,其董事会作出的下列决议中,符合公司法律制度规定的是()。
我国的“三资企业”是指______、______和______。
教学过程中,教师给学生以足够的关注和期望,学生在得到激励和赏识后常常表现出积极学习的行为。这种心理效应是()。
两个秀才一同去赴试,刚上路就遇到出殡的队伍,黑漆漆的棺材擦身而过。甲秀才大感晦气,心头愁绪郁结,结果没有考好名落孙山;乙秀才则暗自高兴:棺材棺材,有官有财,是个好兆头。上了考场,他精神爽快文思泉涌,果然一举成名。两个秀才回来后说自己的预感很灵验,甲说:“一
以下有关“丝绸之路经济带”租“21世纪海上丝绸之路”说法不正确的是()。
网络语言是伴随着网络的发展而新兴的一种有别于传统平面媒介的语言形式。它以简洁生动的形式。一诞生就得到了广大网友的偏爱,发展神速。以下哪一组词不是BBS中跟帖常用的词汇?()
最新回复
(
0
)