Домучав, зробив правильний варіант, який пройшов перевірку. Подивився ваше рішення. Воно спрацює, якщо задубльованих рядків буде не 2, а непарне число? Мені здається ні. Розсудіть. Дякую
Костянтин Назаренко
32 рівень
До автора правильного рішення:
Відповідь знайдено
Коментарі (5)
- популярні
- нові
- старі
Щоб залишити коментар,
потрібно ввійти в систему
hidden #598481
11 травня 2022, 11:11
Покажи код этого "решения", обсудим.
0
Костянтин Назаренко
11 травня 2022, 15:49
public class Solution {
public static String[] strings;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
strings = new String[6];
for (int i = 0; i < 6; i++) {
strings[i] = scanner.nextLine();
}
for (int i = 0; i < strings.length; i++) {
String currentString = strings[i];
for (int j = i + 1; j < strings.length; j++) {
if (currentString == null) {
break;
}
if (currentString.equals(strings[j])) {
strings[j] = null;
strings[i] = null;
}
}
}
for (int i = 0; i < strings.length; i++) {
System.out.print(strings[i] + ", ");
}
}
}
0
hidden #598481
12 травня 2022, 03:46
А что в нём смущает, почему кажется, что такое не сработает с тремя?
0
Денис Enterprise Java Developer
12 травня 2022, 08:16корисний
Я подозреваю что смущает зануление strings[i] во вложенном цикле, но нет, на работу программы это не повлияет, ведь сравнение идет по currentString;
Хотя это самое многократное зануление спорный подход, зачем постоянно дергать ресурс который уже обнулен? Но видимо это сделано для того, что бы не вводить логические флаги для обнуления этого элемента во внешнем цикле.
А вот проверку на null я бы вынес во внешний цикл, но не с break, а с continue.
+1
hidden #598481
12 травня 2022, 09:42
Или в условие вложенного :)
Хотя читаться будет чуть хуже
0