经典面试题:翻转英文句子中单词的顺序
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入"I am a student.",则输出"student. a am I"。
思路:若字符串中有n个空格符' ',则该字符串可被空格符分割成n+1部分,比如字符串"Good luck to you!"中有3个空格符,因此被分割成4部分:"Good"、"luck"、"to"、"you!"。分割出来的每一部分均进行翻转操作,有:"dooG"、"kcul"、"ot"、"!uoy",而空格符处不加改动,则原字符串变为"dooG kcul ot !uoy"。最后用字符串翻转函数strrev()对字符串"dooG kcul ot !uoy"进行翻转,得到的结果为:"you! to luck Good",即题目要求的结果。
编程的关键在于:如何翻转由空格符分割出来的子字符串。我们可用一个循环来探测输入字符串中的空格符,找到空格符后,将' '替换为'\0',则可使用strrev函数来翻转以新替换的'\0'为结尾的子字符串,翻转后再将'\0'换回' '。
代码如下,可以看到,该方法的代码量比网上的一些解法要小。
#include <iostream>
#include <string.h>
using namespace std;void reverse(char []);int main()
{char input[100];cin.getline(input,99); <span style="white-space:pre"> </span> //输入字符串reverse(input); //翻转字符串cout << input << endl; //输出字符串return 0;
}void reverse(char a[])
{char * temp = a;for (int i = 0; i < strlen(a); i++){if (a[i] == ' ') //查找空格符{a[i] = '\0'; <span style="white-space:pre"> </span> //将空格符替换成'\0'strrev(temp); <span style="white-space:pre"> </span> //先翻转子字符串a[i] = ' ';temp = a + i + 1;}}strrev(temp); <span style="white-space:pre"> </span> //最后一个空格符之后的子字符串不要忘了翻转strrev(a); <span style="white-space:pre"> </span> //对经循环改动后的字符串统一进行翻转
}
经典面试题:翻转英文句子中单词的顺序相关推荐
- 翻转英文句子中单词的顺序
利用字符串中的索引下标进行定位,先将整个英文句子翻转,而后将每个英文单词进行翻转 /* *程序说明:将一个英文句子翻转,单词中的字母顺序不变 *程序思路: 先将整个句子翻转,然后将各个单词中的字母顺序 ...
- 翻转英文语句中单词的顺序
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...
- 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a student.", ...
- 翻转句子中单词的顺序
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a student.", ...
- python输入一个英文句子、翻转句子中单词的顺序_H面试程序(4):翻转句子中单词的顺序 ....
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a student." ...
- python输入一个英文句子、翻转句子中单词的顺序_ODOA(1) 翻转句子中单词的顺序(C语言实现)...
动动手才发现自己现在的在C/C++方向的几个问题: 对自己的入门语言C语言变得非常陌生 编程的思维固定在找既有的方法,主要原因是python写多了,基本上所有常见的问题,都有现成的方法,让自己变得懒惰 ...
- 输入一个英文句子,翻转句子中单词的顺序 例如输入“I am a student.”,则输出“student. a am I”。
package com.atguigu.java; //输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开. //为简单起见,标点符号和普通字母一样处理. //例如 ...
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号。 例如输入“I am a student”,则通过控制台输出“student a
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号. 例如输入"I am a student",则通过控制台输出& ...
- 【经典算法】:翻转句子中单词的顺序
题意 翻转句子中单词的顺序. 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入"I am a ...
最新文章
- 程序员们,今天就让她陪你们放松一下吧。她还有大宝剑哦。【原创】
- 为无LIB的DLL制作LIB函数符号输入库zz
- transpose公式_EXCEL转置你是用公式还是选择性粘贴?
- HTML与cgi post传递与接收,CGI实例--表单GET与POST示例
- java多线程基础概念
- php输出mysql查询结果_PHP简单获取数据库查询结果并返回JSON
- 获取程序进程并杀死该进程集
- Android应用程序插件化研究之DexClassLoader
- Linux系统磁盘阵列创建教程----------(better late than never. 只要开始,虽晚不迟。)...
- 程序员面试金典——18.12最大和子矩阵
- 【探索PowerShell 】【二】基本操作
- 实现收藏本站和设为首页功能
- 软文发布时标题怎么写,这几点值得注意!
- 共识算法 —— PoA
- 【电子学会】2021年06月图形化一级 -- 奔跑的马
- 数仓(四):数据建模:如何构建主题域/面向主题的建模
- 今晚“狼来了”|思一独角兽的狼人杀攻略
- python爬虫什么书好_python爬虫什么书
- Cppcheck--C/C++代码静态检测工具
- 机器人图形变变变_幼儿园大班数学《图形变变变》教案