博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻转句子中单词的顺序
阅读量:5360 次
发布时间:2019-06-15

本文共 1496 字,大约阅读时间需要 4 分钟。

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

例如输入“I am a student.”,则输出“student. a am I”。

分析:由于编写字符串相关代码能够反映程序员的编程能力和编程习惯,与字符串相关的问题一直是程序员笔试、面试题的热门题目。本题也曾多次受到包括微软在内的大量公司的青睐。由于本题需要翻转句子,我们先颠倒句子中的所有字符。这时,不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。我们再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然和输入时的顺序保持一致。还是以上面的输入为例子。翻转“I am a student.”中所有字符得到“.tneduts a ma I”,再翻转每个单词中字符的顺序得到“students. a am I”,正是符合要求的输出。

代码如下:

1 //字符串反转 2 char *ReverseStr(char *str) 3 { 4     if(str == NULL) 5         return NULL; 6     char *pStart; 7     char *pEnd; 8     pStart = str; 9     pEnd = str;10 11     //指向整个字符串的末尾12     while(*pEnd != '\0')13         pEnd++;14     pEnd--;15 16     //反转整个字符串17     Reverse(pStart, pEnd);18     pStart = pEnd = str;19 20     //调整单个有效字符串的顺序21     while(*pStart != '\0')22     {23         if(*pStart == ' ')24         {25             pStart++;26             pEnd++;27             continue;28         }29         else if(*pEnd == '\0' || *pEnd == ' ')30         {31             Reverse(pStart, --pEnd);32             pStart = ++pEnd;33         }34         else35         {36             pEnd++;37         }38     }39     return str;40 }41 42 //反转函数43 void Reverse(char *pStart, char *pEnd)44 {45     if(pStart == NULL || pEnd ==NULL)46         return;47     while(pStart < pEnd)48     {49         char cTmp = *pStart;50         *pStart = *pEnd;51         *pEnd = cTmp;52         pStart++;53         pEnd--;54     }55 }

 

 题目来源于:

转载于:https://www.cnblogs.com/phquan/archive/2012/11/12/2766443.html

你可能感兴趣的文章
Log4j自定义Appender
查看>>
C++字符串复制函数StrCpy算法设计(一)
查看>>
PAT_B_1078 字符串压缩与解压
查看>>
洛谷 P1303 A*B Problem
查看>>
创建函数还有一种方法
查看>>
返回绝对值--Math.Abs 方法
查看>>
教你控制 RecyclerView 滑动的节奏
查看>>
冲刺周2
查看>>
静态库lib、动态库dll基础
查看>>
day22 Python shelve模块
查看>>
Promise.race
查看>>
sigleSchool 存储过程例1
查看>>
linux下mysql开启远程访问权限及防火墙开放3306端口
查看>>
开发项目中遇到的问题集锦随时更新
查看>>
C语言中的未初始化变量的值
查看>>
二叉查找树(查找最大值、最小值、给定值、删除给定值的实现)
查看>>
HDU 6397(容斥原理)
查看>>
Spring中配置文件中引用外部文件
查看>>
java中有关初始化的问题
查看>>
【转】除锈的机器是啥原理?
查看>>