Помогите решить задачу, а то уже запарилась и не могу понять её. И можете объяснить, что происходит на каждой строке действий.
Эльвира
9 уровень
не проходит решения
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
MatvejLopatin
29 марта, 06:42
Дело в том что ваша программа удаляет одинаковые символы по парам, сейчас объясню когда цикл фор находит к примеру "q" и "q" то он удаляет их, однако если символов не четное количество (3 или 5) то после удаления 2 (или 4) 3-тий символ (или 5) останется, почему - программа будет думать что этот символ не повторялся так как копий не находит, мой совет: попробуйте вместо того чтобы удалять одинаковые символы по парано удаляйте символы по одному к примеру ввод был такой "q, q, w, q, e, r"
первый символ q занесите в переменную и проходите массив сравнивая объекты с этой переменной а также когда массив заканчивается то нужно сделать проверку "а переменная тоже повторялась в массиве или нет?" если да - удалить. Желаю успехов!!!! 🙂🙂🙂
0
ГоффMaster
29 марта, 09:59
Есть минимум три варианта пофиксить проблему, и этот на втором месте.
0
Эльвира
31 марта, 18:28
Можно ещё чуть подробнее этот момент как проверку сделать?
0
MatvejLopatin
1 апреля, 12:27
счет = 0
переменная = массив[i]
фор {
если переменная == массив[j]
массив[j] == нал
счет += 1
}
если счет > 0
массив[i] == нал
надеюсь понятно объяснил :)
0
ГоффMaster
28 марта, 22:58
Решение верное и красивое, всё на своих местах. Но не проходит валидацию потому, что, если одинаковых строк три, то твой код обнулить первые две, а третью оставит - её сравнить просто не с чем будет.
Намёк - есть минимум три варианта это пофиксить
0
Anonymous #3429634
28 марта, 18:29
public static void main(String[] args) {
//напишите тут ваш код
Scanner scanner = new Scanner(System.in);
strings = new String[6];
for (int i = 0; i < strings.length; i++) {// в "i < strings.leight" вместо "strings.leight" используй "6", длина массива нам известна
strings[i] = scanner.nextLine();
}
for(int i = 0; i<strings.length-1; i++){// то же самое
for(int j = i+1; j<strings.length; j++){
if( strings[i] ==null){// приравниваем"==" к "null", чтобы цикл не продолжался вечно и добавляем "break"
break;
}
if(strings[i].equals(strings[j])){
strings[i] = null;
strings[j]=null;
}
}
for( int i=0; i<strings.length; i++){
System.out.print(strings[i] + ", ");
}
}
}
-2
ГоффMaster
28 марта, 22:54
Ужос
+2