CODECHEF:运行时错误(NZEC)

时间:2016-03-16 21:24:09

标签: java runtime-error

我从codechef尝试了一个问题,并在我的笔记本电脑上的eclipse上运行完美的java上的代码。但每次我尝试提交代码时,它都会给我这个NZEC错误。 任何人都可以告诉我为什么我在执行此代码时得到非零退出代码错误(NZEC)。 此代码存在问题:https://www.codechef.com/problems/STRPALIN

    import java.util.*;
import java.io.*;
public class Palindrome {

    public boolean check() throws IOException{
        String A;
        String B;
        BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
        A=inp.readLine();
        B=inp.readLine();
        for(int i=0;i<A.length();i++)
        {
            for(int j=0;j<B.length();j++)
            {
                if(A.charAt(i)==B.charAt(j))
                    return true;
            }
        }
        return false;
    }


    public static void main(String[] args)throws NumberFormatException, IOException {
        Palindrome M = new Palindrome();
        boolean[] array = new boolean[10];
        BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
        int T = Integer.parseInt(in.readLine());
        for(int i=0;i<T;i++)
        {
            array[i]=M.check();
        }
        for(int j=0;j<T;j++){
            if(array[j])
                System.out.println("Yes");
            else
                System.out.println("No");

        }
    }
}

2 个答案:

答案 0 :(得分:0)

您的代码存在的问题是,在收到用户对String A和B的输入时,readline()方法返回null,当您尝试访问String时A或B,抛出NullPointerException。因此非零退出代码。

现在,readline()方法返回null值,因为您创建了一个BufferedReader对象两次,导致内存泄漏。

请参阅此链接:readline() returns null in Java

答案 1 :(得分:0)

我希望这对NZEC错误肯定有帮助,

您可以复制我的代码以测试其是否成功编译。 看看:

import java.util.*;
import java.io.*;
 class Codechef {

    public boolean check() throws IOException{
        String A;
        String B;
        BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
        A=inp.readLine();
        B=inp.readLine();
        for(int i=0;i<A.length();i++)
        {
            for(int j=0;j<B.length();j++)
            {
                if(A.charAt(i)==B.charAt(j))
                    return true;
            }
        }
        return false;
    }


    public static void main(String[] args)throws NumberFormatException, IOException {
        try {
            Codechef M = new Codechef();
        boolean[] array = new boolean[10];
        BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
        int T = Integer.parseInt(in.readLine());
        for(int i=0;i<T;i++)
        {
            array[i]=M.check();
        }
        for(int j=0;j<T;j++){
            if(array[j])
                System.out.println("Yes");
            else
                System.out.println("No");

        }
        } catch(Exception e) {
        } finally {
        }
    }
}