Причина возниконовения Runtime Error?

159
24 января 2018, 15:11

Доброго времени суток. Необходимо решить задачку на одном ресурсе. У меня все компилируется, но на сервере результат тестирования выдает Runtime error. Не могу понять что не так.

Задача:

В современной биологии ученым часто приходится иметь дело с последовательностями ДНК. Эти последовательности зачастую являются очень длинными, и их ручная обработка требует большого количества времени и сил. Поэтому возникает идея автоматизировать этот процесс.

Для этого можно применять компьютерные методы обработки данных, например, весьма полезными оказываются алгоритмы на строках. В этой задаче последовательность ДНК будет представляться в виде непустой строки, все символы которой входят в множество {A, G, С, T}.

Пусть даны две последовательности ДНК: s = s1s2 … sn и t = t1t2 … tm. Будем говорить, что t может получится в результате эволюции из s, если s является подпоследовательностью t, то есть существует такая последовательность индексов 1 ≤ i1 < i2 < … < in ≤ m, что s1=ti1, s2=ti2, … sn=tin. Необходимо выяснить, может ли последовательность t получится в результате эволюции из s.

Входные данные:

Первая строка входного файла INPUT.TXT содержит последовательность s, вторая — последовательность t. Размер входного файла не превосходит 256 килобайт.

Выходные данные:

В выходной файл OUTPUT.TXT выведите слово YES, если последовательность t могла получиться в результате эволюции из s, и слово NO — иначе.

Могу предположить, что есть ошибка в моем решении.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
Scanner in;
PrintWriter out;
public static void main(String[] argv) throws FileNotFoundException {
    new Main().run();
}
public void run() throws FileNotFoundException {
    in = new Scanner(new File("input.txt"));
    String s = in.nextLine(), t = in.nextLine() ;
    out = new PrintWriter(new File("output.txt"));
    char arrayS[] = s.toCharArray();
    char arrayT[] = t.toCharArray();
    int i = 0;
    int j = 0;
    int o = 0;
    int k = arrayS.length;
    int z = arrayT.length;
    if (k > z) {
        out.print("NO");
        out.close();
    }
    else {
        while (o!= k){
            while ( arrayT[j]!= arrayS[i]){
                j++;
                if (j == z){
                    break;
                }
                if (i == k){
                    break;
                }
            }
            if ( j == z  ){
                break;}
                o++;
                i++;
                j++;
            if (i == k){
                break;
            }
        }
        if (o == arrayS.length){
            out.print("YES");
            out.close();
        }
        else {
            out.print("NO");
            out.close();
        }
    }
}
}
READ ALSO
Распарсить значения в JavaScript

Распарсить значения в JavaScript

Контроллер передает данные:

146
Заменить метод .live на .on

Заменить метод .live на .on

Как правильно заменить устаревший методlive в строке:

173
Верно ли понимается значение строки jQuery

Верно ли понимается значение строки jQuery

Из блока с id="box", расположенным по адресу indexphp?route=module/cart будет вытащено все содержимое, и все это будет загружено в блок с id="cart"

210