Java,关于碰到本地可以几乎瞬间出答案,但交上去全部TLE怎么办
  • 板块题目总版
  • 楼主xu2237803016
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/1/20 20:20
  • 上次更新2023/10/28 11:44:44
查看原帖
Java,关于碰到本地可以几乎瞬间出答案,但交上去全部TLE怎么办
633904
xu2237803016楼主2022/1/20 20:20

题目P1928 外星密码

代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;


public class Main {


    public static void main(String[] args) throws IOException {
        StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));

        in.ordinaryChar('\n');
        StringBuilder builder = new StringBuilder(30000);
        while (true) {
            in.nextToken();
            if (in.ttype == '\n') {
                break;
            } else if (in.ttype == StreamTokenizer.TT_WORD) {
                builder.append(in.sval);
            } else {
                // 发现特殊字符
                int level = 1;
                // 左括号个数
                int leftCount = 1;
                StringBuilder key = new StringBuilder(50);
                do {
                    in.nextToken();
                    if (in.ttype == StreamTokenizer.TT_NUMBER) {
                        level *= in.nval;
                    } else if (in.ttype == StreamTokenizer.TT_WORD) {
                        key.append(in.sval);
                    } else if (in.ttype == '['){
                        leftCount++;
                    } else if (in.ttype == '\n'){
                        System.exit(0);
                    } else {
                        // 右括号
                        leftCount--;
                    }
                } while (leftCount != 0 || in.ttype != ']');
                // 添加
                for (int i = 0; i < level; i++) {
                    builder.append(key);
                }
            }
        }
        System.out.print(builder);
    }

}

第一个测试点是[2[2[2NOTOMAMIKO]]],自己本地测试几乎是瞬间出结果,但是提交后全部TLE

提交记录

愁死我了,这么好用的类不会不让用吧(

2022/1/20 20:20
加载中...