剑指offer42:翻转单词顺序
来源:互联网 发布:ck背包 知乎 编辑:程序博客网 时间:2024/04/29 07:59
- 题目描述:
- JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
- 输入:
- 每个测试案例为一行,表示一句英文句子。我们保证一个句子的单词数不会超过600,每个单词的长度也不会超过30。但是需要注意的是Fish是个不拘小节的人,有时候两个单词中间可能会有很多空格。为了方便起见,你可以认为一行的字符总数不会超过50000个,标点符号可以和普通字母一样处理。
- 输出:
- 对应每个测试案例,把翻转后的正确的句子单独输出一行。
- 样例输入:
student. a am II'm a Freshman and I like JOBDU!
- 样例输出:
I am a student.JOBDU! like I and Freshman a I'm
示例代码如下:
#ifndef PROGRAM42_H#define PROGRAM42_H#include <iostream>#include <string.h>void ReverseWord(char* start,char* end){if(start==NULL || end==NULL)return;while(start<end){char temp;temp=*start;*start=*end;*end=temp;--end;++start;}}void ReverseString(char* str){if(str==NULL)return;char *pstr=str;char *start=NULL,*end=NULL;while(*pstr!='\0'){while(*pstr!='\0' && *pstr==' ')++pstr;start=pstr;//单词的开始while(*pstr!='\0' && *pstr!=' ')++pstr;end=pstr-1;//单词的结尾ReverseWord(start,end);}}void TestProgram42(){char str[18000];while(std::cin.getline(str,18000)){char *start=str;char *end=str+strlen(str)-1;ReverseWord(start,end);ReverseString(str);std::cout<<str<<std::endl;}}#endif
0 0
- 剑指offer42:翻转单词顺序
- 剑指offer42-翻转单词顺序和字符串的左旋转
- 剑指offer42:翻转单词顺序 VS 左旋转字符串(更高效、简便的解法)
- 翻转字符串(剑指offer42)
- 【剑指offer】翻转单词顺序
- 剑指offer-翻转单词顺序
- 剑指offer 翻转单词顺序
- 剑指offer-翻转单词顺序
- 剑指Offer 1361 翻转单词顺序
- 剑指Offer之翻转单词顺序
- 剑指offer系列源码-翻转单词顺序
- 剑指offer-42 翻转单词顺序
- 《剑指Offer》面试题:翻转单词顺序
- 《剑指offer》翻转单词顺序列
- 剑指offer--翻转单词顺序列
- 剑指offer—翻转单词顺序列
- 剑指offer:翻转单词顺序列
- 【剑指offer】之翻转单词顺序
- android性能优化--overdraw优化
- 第7篇,怎样让用户容易找到你?
- 黑马程序员42,基本数据操作流,字节数组操作流,转换流,编码表
- CSS 最核心的几个概念
- POI导出Excel
- 剑指offer42:翻转单词顺序
- Android中的长度单位详解(dp、sp、px、in、pt、mm)
- Qt输入法设计(嵌入式)
- 【框架-MFC】(vc\vs2005\vs2008\vs2010)MFC的多语言控制
- Java加密技术(二)——对称加密算法DES&AES
- R型聚类分析
- 在VC6中使用GDI的方法(附一个使用GDI+的批量图片格式转换程序)
- Android四大组建之Service
- 指针函数与函数指针的区别