暖冬的源码分享

 找回密码
 立即加入

QQ登录

只需一步,快速开始

搜索
热搜: 巧借
查看: 11105|回复: 2

[九度OJ] 题目1058:反序输出

[复制链接]
发表于 2013-2-19 11:39:03 | 显示全部楼层 |阅读模式

题目描述:

    输入任意4个字符(如:abcd), 并按反序输出(如:dcba)

输入:

    题目可能包含多组用例,每组用例占一行,包含4个任意的字符。

输出:

    对于每组输入,请输出一行反序后的字符串。
    具体可见样例。

样例输入:

    Upin
    cvYj
    WJpw
    cXOA

样例输出:

    nipU
    jYvc
    wpJW
    AOXc

来源:
    2000年清华大学计算机研究生机试真题
回复

使用道具 举报

 楼主| 发表于 2013-2-19 11:39:41 | 显示全部楼层
超时脚本:
  1. #include <iostream>
  2. #include <string>
  3. #include <cstring>

  4. #define STR_LEN 5

  5. int main()
  6. {
  7.     using std::cin;
  8.     using std::cout;
  9.     using std::endl;

  10.     char cStrings[STR_LEN], cNewStrings[STR_LEN];
  11.     int str_length = 0;

  12.     while(cin >> cStrings)
  13.     {
  14.         str_length = strlen(cStrings);
  15.         int j = 0;
  16.         for (int i = str_length - 1; i >= 0; i--)
  17.         {
  18.             cNewStrings[j] = cStrings[i];
  19.             j++;
  20.         }
  21.         cNewStrings[j] = '\0';
  22.         cout << cNewStrings << endl;
  23.     }   

  24.     return 0;
  25. }
  26. /**************************************************************
  27.     Problem: 1058
  28.     User: greenrock
  29.     Language: C++
  30.     Result: Time Limit Exceed
  31. ****************************************************************/
复制代码
上述处理方式与题目1055类似,但此处却显示超时。根据题目来看,时间限制很可能很短,而不是题目要求的1s。处理200个长度的字符串尚可在10ms内完成,4个字符却不可以了,疑虑?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 11:50:42 | 显示全部楼层
修改cin,cout之后的代码:
  1. #include <stdio.h>
  2. #include <string.h>

  3. #define STR_LEN 5

  4. int main()
  5. {
  6.     char cStrings[STR_LEN], cNewStrings[STR_LEN];
  7.     int str_length = 0;

  8.     while(scanf("%s", cStrings) != EOF)
  9.     {
  10.         str_length = strlen(cStrings);
  11.         int j = 0;
  12.         for (int i = str_length - 1; i >= 0; i--)
  13.         {
  14.             cNewStrings[j] = cStrings[i];
  15.             j++;
  16.         }
  17.         cNewStrings[j] = '\0';
  18.         printf("%s\n", cNewStrings);
  19.     }   

  20.     return 0;
  21. }
  22. /**************************************************************
  23.     Problem: 1058
  24.     User: greenrock
  25.     Language: C++
  26.     Result: Accepted
  27.     Time:50 ms
  28.     Memory:1012 kb
  29. ****************************************************************/
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|小黑屋|享码网 ( 京ICP备12003721号 )

GMT+8, 2024-3-28 23:20

Powered by Discuz! X3.5

Copyright © 2001-2021 Tencent Cloud.

快速回复 返回顶部 返回列表