设为首页 加入收藏

TOP

翻转单词顺序
2013-12-06 09:54:16 来源: 作者: 【 】 浏览:221
Tags:翻转 单词 顺序

  题目描述:

  JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,"student. a am I".后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是"I am a student.".Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?

  输入:

  每个测试案例为一行,表示一句英文句子。

  我们保证一个句子的单词数不会超过600,每个单词的长度也不会超过30.但是需要注意的是Fish是个不拘小节的人,有时候两个单词中间可能会有很多空格。为了方便起见,你可以认为一行的字符总数不会超过50000个,标点符号可以和普通字母一样处理。

  输出:

  对应每个测试案例,把翻转后的正确的句子单独输出一行。

  样例输入:

  student. a am I

  I'm a Freshman and I like JOBDU!

  样例输出:

  I am a student.

  JOBDU! like I and Freshman a I'm

  #include<cstdio>

  #include<cstring>

  #include<algorithm>

  using namespace std;

  int main()

  {

  int L,S,E;

  char str[50000];

  while(gets(str))       //gets遇到换行(newline)时结束读取

  {

  L=strlen(str);     //cstring头文件中的函数

  reverse(str,str+L);//反转整个字符串,reverse为标准库中的函数

  for(S=E=0;E<L;++E)

  if(str[E]=='

  ')

  {

  reverse(str+S,str+E);

  S=E+1;

  }

  reverse(str+S,str+E);//reverse(a,b)翻转区间为[a,b),包括a不包括b

  puts(str);

  }

  return 0;

  }

  /**************************************************************

  Problem:

  1361

  User:

  3011216016

  Language:

  C++

  Result:

  Accepted

  Time:50

  ms

  Memory:1020

  kb

  ****************************************************************/

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++---set容器的用法 下一篇利用DFS得出十二张牌的赢法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)