zoukankan      html  css  js  c++  java
  • ACM&翻转单词顺序

    翻转单词顺序

    题目描述:
    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
    http://ac.jobdu.com/problem.php?cid=1039&pid=25
    main.cpp
     1 #include
     2 
     3 #include
     4 
     5 #define N 50005
     6 
     7  
     8 
     9 using namespace std;
    10 
    11  
    12 
    13 void swap(char* str, int begin, int end );
    14 
    15  
    16 
    17 int main()
    18 
    19 {
    20 
    21     char str[N];
    22 
    23  
    24 
    25     while( cin.getline(str, N) ) {
    26 
    27     int len = strlen(str);
    28 
    29     int begin, end;
    30 
    31     begin = end = 0;
    32 
    33     swap(str, 0, len);
    34 
    35  
    36 
    37     while(end < len) {
    38 
    39         while(str[end] != ' ' && str[end] != '\0') end++;
    40 
    41  
    42 
    43         swap(str, begin, end);
    44 
    45         begin = end;
    46 
    47         while(str[++begin] == ' ') ;
    48 
    49         end = begin;
    50 
    51  
    52 
    53         }
    54 
    55  
    56 
    57     cout << str <
    58 
    59  
    60 
    61     }
    62 
    63  
    64 
    65     return 0;
    66 
    67 }
    68 
    69  
    70 
    71 void swap(char* str, int begin, int end )
    72 
    73 {
    74 
    75     char temp;
    76 
    77     end--;
    78 
    79     while(begin < end){
    80 
    81         temp = str[begin];
    82 
    83         str[begin] = str[end];
    84 
    85         str[end] = temp;
    86 
    87         begin++;
    88 
    89         end--;
    90 
    91         }
    92 
    93 }
  • 相关阅读:
    Java实现 LeetCode 69 x的平方根
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 66 加一
    Java实现 LeetCode 66 加一
    CxSkinButton按钮皮肤类
  • 原文地址:https://www.cnblogs.com/wizzhangquan/p/2956583.html
Copyright © 2011-2022 走看看