ZOJ 1151: Word Reversal

简单题,但测试数据量难道有几十万行么!

不能用Java的scanner 和 每行printf 这样做一定会TLE,一开始没意识到是I/O效率问题,还傻乎乎的想怎么优化。。。 被坑死了...

一模一样的算法 把IO换上BufferedReader和StringBuilder之后 190ms过了...

居然会差这么多!!!


题目本身的意思就是 每行会给出一系列用空格分隔的单词 读取然后每个单词反序输出


鉴于以上坑爹属性,难度系数=1

通过率数据:22.56% (6863/30411)


贴代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main 
{
	public static void main(String[] args) throws IOException 
	{
		int N;
		int i;
		int M;
		int j;
		String s;
		int x;
		
		BufferedReader bi = new BufferedReader(new InputStreamReader(System.in)); //这货用来取代scanner	
		StringBuilder sb = new StringBuilder(); //这个用来做输出buffer
		StringTokenizer tk = new StringTokenizer(""); //这个类可以用来从字符串取词 比循环快
		String line="";
		while (line.length()==0)
			line=bi.readLine();   //取代 scanner.nextline
		
		N=Integer.parseInt(line);
		
		for (i=0;i<N;i++)
		{
			line="";
			while (line.length()==0)
				line=bi.readLine();
				
			M=Integer.parseInt(line);

			for (j=0;j<M;j++)
			{
				line=bi.readLine();
				tk=new StringTokenizer(line);
				while (tk.hasMoreTokens())
				{
					s=tk.nextToken();
					for (x=s.length()-1;x>=0;x--)
					{
						sb.append(s.charAt(x));
					}
					if (tk.hasMoreTokens()) sb.append(' ');
				}
				sb.append("\n");
			}
			if (i<N-1) sb.append("\n"); 
		}
		System.out.print(sb);
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
苹果公司所用字体大全苹果公司所用字体大全苹果公司所用字体大全苹果公司所用字体大全苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大全,苹果公司所用字体大

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值