例如,句子"I miss you now"转为"now you miss I"。
思路是先将整个句子翻转过来,然后再将每一个单词重新翻转一次,便可以得出翻转单词顺序的效果。
代码示例:
void Reverse(char* pb , char* pe) //将某一段字符串翻转过来
{
char *pl = pb , *pr = pe;
while(pl!=pr&&pl&&pr)
{
char temp = *pl; //不能写成char * temp = pl;否则交换字符的操作失败
*pl = *pr;
*pr = temp;
if(pl+1==pr)break;
pl++;
pr--;
}
}
char * reverseSentence(char * pData)
{
if(!pData)return NULL;
char * pBegin = pData;
char * pEnd = pData;
while(pEnd&&*pEnd!='\0')pEnd++;
pEnd--;
Reverse(pBegin,pEnd); //整个句子翻转
pBegin = pEnd = pData;
while(pEnd&&*pEnd!='\0') //翻转每个单词
{
while(*pEnd!='\0'&&*pEnd!=' ')pEnd++;
--pEnd;
Reverse(pBegin , pEnd);
++pEnd;
while(*pEnd!='\0'&&*pEnd==' ')pEnd++;
pBegin = pEnd;
}
return pData;
}
分享到:
相关推荐
面试题58 - I. 翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。int temsize
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 微软面试题
java基础面试题翻转单词顺序列本资源系百度网盘分享地址
1.2.7. 翻转句子中单词的顺序....................................................................... 31 1.2.8. 判断整数序列是不是二元查找树的后序遍历结果 ................................ 33 1.2.9. ...
程序员面试题精选100题(07)-翻转句子中单词的顺序[算法] 2007-03-08 09:20:52| 分类: 字符串 | 标签:编程 就业 找工作
剑指Offer(Python多种思路实现):翻转字符串 面试58题: 题目:翻转字符串 ...Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 解题思路一:Python特性 class Solution: def ReverseSentence(self, s):
翻转单词顺序(简单)][] [剑指 Offer 05. 替换空格(简单)][] 经典atoi(),注意范围越界处理 题型 找规律题 第二讲:找规律题 [面试题 01.08. 零矩阵 (简单)][] [剑指 Offer 61. ...
1.2.7. 翻转句子中单词的顺序....................................................................... 31 1.2.8. 判断整数序列是不是二元查找树的后序遍历结果 ................................ 33 1.2.9. 查找...
point-to-offer-edition2 剑指offer原书第二版的java实现 说明 《剑指offer》,从名字上看虽不是一本系统的算法书,但很多师兄师姐都推荐它,因为很多...58.翻转单词顺序 286 58.2.左旋转字符串 318 67.把字符串转换