ECNU 2033 反转字符串

ECNU 2033 反转字符串

链接

https://acm.ecnu.edu.cn/problem/2033/

题目

单点时限: 2.0 sec

内存限制: 256 MB

给你一个字符串,长度不超过 10000,反转输出这个字符串。

输入格式
每次一行字符串,有空格。

多 Case,处理到文件结束。

输出格式
每次一行,输出反转后的字符串。

样例
input
abcd
abcd a
output
dcba
a dcba

思路

这题就挺秃然的,超内存两次,最后调了一手api,然后知道了stringbuffer比string省内存多了,所以java的坑还是蛮多的。
直接把字符串读取为stringbuffer,然后头尾交换,0和n-1,1和n-2,一直到中间,最后把新的stringbuffer转为string输出即可。
我本来string直接操作,内存占用大概有十倍,我也不知道为什么。

代码

  public static void fun() {
    Scanner sc = new Scanner(System.in);
    while (sc.hasNext()) {
      String str;
      str = sc.nextLine();
      String reverse = new StringBuffer(str).reverse().toString();
      //直接api
      StringBuffer sb = new StringBuffer(str);
      int n= sb.length();
      for(int i=0;i<n/2;i++)
      {
        char temp = sb.charAt(i);
        sb.setCharAt(i,sb.charAt(n-i-1));
        sb.setCharAt(n-i-1,temp);
      }
      System.out.println(sb.toString());
      //交换
    }
  }

posted @ 2021-01-14 23:04  cheng102e  阅读(119)  评论(0编辑  收藏  举报