题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
分析:由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。
由于本题需要翻转句子,我们先颠倒句子中的所有字符。这时,不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。我们再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然和输入时的顺序保持一致。
还是以上面的输入为例子。翻转“I am a student.”中所有字符得到“.tneduts a ma I”,再翻转每个单词中字符的顺序得到“students. a am I”,正是符合要求的输出。
参考代码:
-
-
-
-
-
-
void Reverse(char *pBegin, char *pEnd)
- {
-
if(pBegin == NULL || pEnd == NULL)
-
return;
-
while(pBegin < pEnd)
- {
-
char temp = *pBegin;
- *pBegin = *pEnd;
- *pEnd = temp;
- pBegin ++, pEnd --;
- }
- }
-
-
-
-
-
-
char* ReverseSentence(char *pData)
- {
-
if(pData == NULL)
-
return NULL;
-
-
char *pBegin = pData;
-
char *pEnd = pData;
-
while(*pEnd != '\0')
- pEnd ++;
- pEnd--;
-
-
- Reverse(pBegin, pEnd);
-
-
- pBegin = pEnd = pData;
-
while(*pBegin != '\0')
- {
-
if(*pBegin == ' ')
- {
- pBegin ++;
- pEnd ++;
-
continue;
- }
-
-
else if(*pEnd == ' ' || *pEnd == '\0')
- {
- Reverse(pBegin, --pEnd);
- pBegin = ++pEnd;
- }
-
else
- {
- pEnd ++;
- }
- }
-
return pData;
分享到:
相关推荐
《程序员面试题精选100题—何海涛》是一份详实的IT面试准备资料,由何海涛整理发布,旨在帮助应届毕业生和求职者准备面向微软、谷歌等知名科技公司的面试。此资料不仅收录了精选的100道面试题目,还提供了详细的解题...
java程序员面试题150例 java常见面试题 java工程师面试题 java面试题大全 带搜索功能,能非常方便的查找到你想要了解的 java面试题目 推荐大家下载。
程序员面试题精选100题 本资源是程序员面试题精选100题,涵盖了算法、数据结构、操作系统、计算机网络、数据库等多个领域。今天,我们将深入分析其中的一道题目,即将二元查找树转换成排序的双向链表。 知识点一:...
简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选简历模板-程序员-通用-精选...
程序员面试题精选 C++ 算法 微软 google 程序员面试题精选 C++ 算法 微软 google
具体来说,文档中详细讨论了一个在程序员面试中常见的算法问题:如何将二元查找树(Binary Search Tree,BST)转换为一个排序的双向链表。这是一个涉及树的遍历、指针操作、递归思维的经典算法问题。下面将详细介绍...
程序员面试宝典 第5版-欧立奇.part2.rar
------------------------------------- java程序员早期面试题汇总 BAT经典面试题汇总.pdf Java常考面试题.pdf java面试题(题库全)....程序员面试题精选100题.pdf ... -------------------------------------
在准备程序员考试的过程中,考生应当重视这些试题的分析和解答,尤其要关注历年常考的知识点,如面向对象编程的基本概念,常用数据结构(如数组、链表、树、图)的操作,基本算法(排序、搜索)的实现,以及软件设计...
通过解决"程序员面试题精选(1-57)"中的题目,你可以系统地复习和巩固这些知识点,同时也可以训练自己面对新问题时的分析和解决问题的能力。这个资源不仅适用于面试准备,也是提升自身编程素养的好材料。因此,无论你...
人事面试题150问完整版,附加.NET程序员面试题,所有题目绝对真实有效,欢迎下载!O(∩_∩)O哈哈~
【程序员面试题精选100题【数据结构 /算法】】是针对求职程序员精心挑选的一系列面试题目,涵盖了数据结构和算法两大核心领域。这些题目旨在帮助应聘者提高面试技巧,提升对技术的理解,以便在激烈的就业市场竞争中...
程序员面试宝典 第5版-欧立奇.part1.rar
Java面试题,J2EE面试题,.net面试题,PHP面试题,数据库面试题,英语面试,外企面试,软件测试面试题,Python面试题,Oracle面试题,MySql面试题,Web开发面试题,Unix面试题,程序员面试,网络技术面试题,网络安全面试题,Linux...
IT程序员面试题目及答案-计算机面试.docx