java - 编辑距离代码中的 NZEC

标签 java dynamic-programming

SPOJ 在我的问题解决方案中给予 NZEC 异常(exception) ==> http://www.spoj.com/problems/EDIST/

我的解决方案是==>

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

class EDIST {

    public static int trans(String a, String b, int i, int j, Map<String, Integer> m)
    {
        if(m.containsKey(i+" "+j))
            return m.get(i+" "+j);
        if(i==a.length())
            m.put(i+" "+j, b.length()-j);                   
        else if(j==b.length())
            m.put(i+" "+j, a.length()-i);
        else if(a.charAt(i)==b.charAt(j))
            m.put(i+" "+j, trans(a,b,i+1,j+1, m));
        else 
            m.put(i+" "+j, 1+ Math.min(trans(a,b,i,j+1, m),Math.min(trans(a,b,i+1,j+1, m), trans(a,b,i+1,j, m)))); //I, R and D;
        return m.get(i+" "+j); 
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        while(t--!=0)
        {
            String a = in.next();
            String b = in.next();
            Map<String, Integer> map = new  HashMap<String, Integer>();
            System.out.println(trans(a,b,0,0,map));
        }
        in.close();
    }

}

geeksforgeeks( http://www.geeksforgeeks.org/dynamic-programming-set-5-edit-distance/ ) 和我的逻辑是相同的,但我仍然收到 NZEC 错误。 我正在使用 HashMap 来存储中间结果。我已经测试了我的代码是否可以进行大输入,但我仍然不明白为什么我在 spoj 上得到 NZEC。

最佳答案

除了未捕获的异常之外,如果您在 spoj 中提交之前忘记从代码中删除 package yourpackagename; ,spoj 还会给出 NZEC 错误(尽管您在此处添加的代码不包含此行,但我仍然建议您在实际提交中验证这一点)。

由于这个原因,我在不同的问题中收到了 NZEC 错误。

关于java - 编辑距离代码中的 NZEC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34236410/

相关文章:

java - 如何在javers中注册提供全局id字符串函数的身份类?

java - 如何在关闭应用程序时停止音乐

python - 如何找到最大可能的协方差矩阵,或具有非缺失成对协方差的最大列集

python - 这个问题可以用动态规划来优化吗?

java - 针对这个问题的动态程序是如何设计的呢?

Java:用assert实现长类型溢出免疫

java - 我如何优化这段包含一些重复行的代码?

java - 将一个类的内容复制到另一个类

javascript - 我在解决这个动态规划问题的方法中缺少什么? (Leetcode 740。删除并赚取)

algorithm - 在这种情况下如何找到数组的最小索引?