首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。
admin
2014-11-15
132
问题
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
选项
答案
由于本题需要翻转句子,我们先颠倒句子中的所有字符。这时,不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。我们再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然和输入时的顺序保持一致。 还是以上面的输入为例子。翻转“I am a student.”中所有字符得到“.tneduts a ma I”,再翻转每个单词中字符的顺序得到“students. 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; }
解析
转载请注明原文地址:https://kaotiyun.com/show/sxmZ777K
0
程序员面试
相关试题推荐
TheUnitedStatesInterstateHighwaySystemisaninfrastructurefeatofunprecedentedproportions.Notonlydoesitjoinallfi
输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。
输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因
C#中要使一个类支持FOREACH遍历,实现过程怎样?
如果利用局域网连接Internt,在Internet选项中进行设置代理服务器HTTP:proxy.pku.edu.cn端口:8080。
为系统创建一个无毒点,以便遭遇病毒时将系统还原。
将桌面背景设置为图片WindowsXP。
不能显示和编辑备注内容的视图模式是()A.普通视图B.大纲视图C.幻灯片视图D.备注页视图
请给学生成绩表的某列“普通物理”设置一个链接其课程简介的超链接。
数据库系统的三级模式分别为()模式、内部级模式与外部级模式。
随机试题
有机垢堵塞一般以()为主要成分。
不依赖ACTH的Cushing综合征的病因是
患者,男,42岁。诊断为腰椎间盘突出症。患者最早出现的症状应是
起矫味、矫臭作用,且在收胶时有利于气泡逸散的胶剂辅料是
B家具木材厂加工车间内用可移动式传送带传送物料。可移动式传送带的驱动电机使用380V三芯电缆线供电,其铁制控制箱入口处的电缆线用布条缠绕固定。因控制箱随传送带经常移动,操作人员为图方便,只安装了一个螺栓固定。控制箱没有漏电保护装置。木材加工车间内粉
设计合同示范文本中,适用于民用建设工程设计的合同,其主要条款包括()。
注册会计师需要识别和评估舞弊导致财务报表发生重大错报的风险,针对评估的风险设计和实施适当的应对措施。用以识别由于舞弊导致的集团财务报表重大错报风险所需的信息可能包括()。
IIS(IntemetInformationServer)是微软公司推出的(1)服务器程序。安装WindowsServer2003时,将自动安装IIS并建立默认的站点。IIS只能运行于基于(2)技术的Windows平台,因此不能在Wi
在MSSQLSERVER2000的主要功能Web支持不包括
ToliveintheUnitedStatestodayistogainanappreciationforDahrendorf’sassertionthatsocialchangeexistseverywhere.T
最新回复
(
0
)