Доброго времени суток. Необходимо решить задачку на одном ресурсе. У меня все компилируется, но на сервере результат тестирования выдает 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();
}
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Из блока с id="box", расположенным по адресу indexphp?route=module/cart будет вытащено все содержимое, и все это будет загружено в блок с id="cart"