-4

我能够针对给定的示例输入数据测试以下代码,并且能够成功验证。

http://rosalind.info/problems/1c/

但不知何故,对于我下载的任何数据集,网站都没有接受答案。我不确定我是否遗漏了什么。

我为此使用了朴素的 indexOf 函数。除非输入字符串真的很大,否则不确定是否真的需要 KMP。

import java.util.*;
import java.lang.*;
import java.io.*;
class PatternMatch
{
    public static StringBuilder out = new StringBuilder();
    public static void main (String[] args) throws java.lang.Exception
    {
        try{
            System.out.println(match("GATATATGCATATACTT","ATAT",0));
        }catch(Throwable e){
            System.out.println("excepton "+e.getMessage());
        }
    }
    static String match(String text,String pat,int start){
        if(start+pat.length()-1<text.length()){
            int matchPos = text.indexOf(pat,start);
            if(matchPos>0){
                out.append(matchPos+" ");
                match(text,pat,matchPos+1);
            } else {
                return out.toString();  
            }
        } else {
            return out.toString();
        }
        return out.toString();
    }
}
4

1 回答 1

-1

我能够解决这个问题。程序运行良好。我将答案复制到评估网站的方式存在一些问题。

谢谢。

于 2014-12-22T18:39:41.247 回答