翻转句子中单词的顺序 【微软面试100题 第十题】
来源:互联网 发布:程序员经常去的网站 编辑:程序博客网 时间:2024/06/04 20:00
题目要求:
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如:输入"I am a student.",则输出"student. a am I".
参考资料:剑指offer第42题。
题目分析:
1.实现一个翻转函数;
2.先翻转整个句子,再翻转句子中的每个单词。
代码:
#include <iostream>using namespace std;char *reverseSentence(char *p);int main(void){ char a[] = "I am a student."; cout << "原句子:" << a << endl; reverseSentence(a); cout << "翻转后的句子:" << a << endl; return 0;}void reverse(char *s,char *e){ if(s==NULL || e==NULL) return ; while(s<e) { char temp = *s; *s = *e; *e = temp; s++; e--; }}char *reverseSentence(char *p){ if(p == NULL) return NULL; char *begin = p; char *end = p; while(*end != '\0') end++; end--; reverse(begin,end); begin = end = p; while(*begin != '\0') { if(*begin == ' ') { begin++; end++; } else if(*end==' ' || *end=='\0') { reverse(begin,--end); begin = ++end; } else end++; } return p;}
0 0
- 翻转句子中单词的顺序 【微软面试100题 第十题】
- 面试100题:10.翻转句子中单词的顺序
- 面试100题:10.翻转句子中单词的顺序
- 第十题(翻转句子中单词的顺序)
- 微软面试100之10 翻转句子中单词的顺序
- 微软算法100道题-----翻转句子中单词的顺序
- 程序员面试100题(算法)之翻转句子中单词的顺序
- 【100题】翻转句子中单词的顺序
- 第10 题 翻转句子中单词的顺序。
- 第10题:翻转句子中单词的顺序
- 面试经典(1)---翻转句子中单词的顺序
- 程序员面试题100题第07题——翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
- 对于GC回收优化转贴文章的一点补充
- matlab 关于double和im2double
- UIButton设置图片在上 文字在下的方法
- 117、BS与CS的联系与区别。
- 网络爬虫之html获取和解析(Java)
- 翻转句子中单词的顺序 【微软面试100题 第十题】
- 东京地震8.0 剧本2 父母与未来的对话
- Android studio添加断点却不停止可能原因
- javascript中使用var定义变量的预编译效果
- 2014年国内常用移动客户端推送服务介绍和比较
- 求二叉树中结点的最大距离 【微软面试100题 第十一题】
- 奋战
- 转贴:介绍并调优JVM GC(Garbage Collection)
- 47.用户品牌 (15分待续)