package com.javarush.task.task17.task1721;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
Транзакционность
*/
public class Solution {
public static Scanner scanner = new Scanner(System.in);
public static String nameOne;
public static String nameTwo;
static {
nameOne = scanner.nextLine();
nameTwo = scanner.nextLine();
}
public static List<String> allLines = new ArrayList<String>();
public static List<String> forRemoveLines = new ArrayList<String>();
public static void main(String[] args) {
readFiles(nameOne, allLines);
readFiles(nameTwo, forRemoveLines);
Solution solution = new Solution();
try {
solution.joinData();
scanner.close();
} catch (CorruptedDataException e) {
e.printStackTrace();
}
}
public void joinData() throws CorruptedDataException {
boolean flag = false;
int coincidence = allLines.size();
int step = 0;
int count = 0;
for (String stringAllLines : allLines) {
for (String stringRemoveList : forRemoveLines) {
if ((allLines.get(step)).equals(stringRemoveList)) {
count++;
if (count == coincidence) {
flag = true;
}
}
}
step++;
}
if (flag) {
allLines.removeAll(allLines);
}
if (!flag) {
allLines.removeAll(allLines);
throw new CorruptedDataException();
}
if(allLines.isEmpty())
System.out.println("YES");
}
public static void readFiles(String string, List<String> list) {
try {
scanner = new Scanner(new File(string));
while (scanner.hasNextLine()) {
list.add(scanner.nextLine());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Valeriy29
41 уровень
Решил своим способом, программа все делает верно, валидатор не пропускает 3й пункт с конца. Возможно намудрил с циклами и if-ами. Пришлось взять отсюда более лаконичный способ
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Roman Pryshchepa Java Developer Expert
16 октября 2018, 15:47
Убедись, что метод joinData() удаляет в списке allLines все строки из списка forRemoveLines.
0