Задача по алгоритмам Ӏ Java Syntax: 9 уровень, 11 лекция

  • 12
  • Недоступна
Вместо кубиков жители планеты Линейный Хаос дают своим детям решать задачки на сортировку. Вот вам одна из забавок маленьких упорядоченных изоморфиков, развлекитесь, как следует: после того, как пользователь введет с клавиатуры список слов (и чисел), программа должна вывести слова в возрастающем порядке, а числа — в убывающем.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (428)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Vyacheslav12 уровень, Ufa
позавчера, 08:30
Рекомендация от ментора - "Убедись, что сортируешь числа "как числа", а не "как строки"."!!! Где в условиях это написано?! Я решил задачу и какая разница, как их сортировать. Сидишь тут два часа над задачей - код работает, а потом выясняется, что надо уметь улавливать между строк скрытый смысл задания!
aleksey11 уровень, Одесса
Monday, 18:09
У меня одного в начальном цикле заполнения массива условие if (s.isEmpty()) { break; } не отрабатывает? пришлось его заменить на if (s==null) { break; }
aleksey11 уровень, Одесса
Monday, 18:05
Опять одно и тоже - убогая сортировка руками, вместо использования стандартных методов. еще и обязательный метод isnumber втулили. Хотя в этом курсе учили exception. Почему не дать студентам поломать голову с использованием пройденного материала, чтобы число от нечисла отличить через него? try { int tmp = Integer.parseInt(array[i]); //если число } catch (Exception e) { String s=array[i]; // нечисло - строка }
Garadzienski15 уровень, Kraków
Sunday, 10:59
0) String tmp; - создаём временную переменную. (можно и внутри цикла for создать.) 1) 2 цикла for вложенных друг в друга. 2) далее два раза if вложенный в if для строк и для чисел. 3) первый блок, состоящий из двух if: 3a) if проверяем строка ли это !isNumber(array[i]) && !isNumber(array[j]) { 3b) if (isGreaterThan(array[j], array[i]){ 3c) сортируем пузырьком } } 4) Второй блок if 4a) if проверяем число ли это isNumber(array[i]) && isNumber(array[j]) { 4b) if (Integer.parseInt(array[i]) > Integer.parseInt(array[j]) { 4c) сортируем пузырьком } } }внутренний for }внешний for
Эллочка Людоедочка16 уровень, Санкт-Петербург
19 May, 14:00
Вадидатор принимает оба варианта 1. И когда сначала только слова, потом только строки (сначала строки, потом слова) 2, И когда вывод в той же последовательности, как вводили: строка - слово - строка - слово. Первый писать легче.
Екатерина13 уровень, Санкт-Петербург
19 May, 12:56
Чуть с ума не сошла, пока поняла, что сравнивая 22 и 3 как строку compareTo отталкивается от первого символа char и 22 становится почему-то меньше, чем 3🤪 Учтите при решении)))
Вадим14 уровень, Саранск
18 May, 19:48
1) Сделал 2 листа: первый для чисел, второй для строк 2) С помощью предложенного метода isNumber раскидал переданный массив на два листа. Если число - в первый лист (думаю все знают, как строку к числу привести), если строка - во второй лист. 3) С помощью Collections.sort отсортировал лист с числами и сразу же методом Collections.reverse развернул его 4) Далее с помощью предложенного метода isGreaterThan отсортировал второй лист со строками (пузырек пригодился) 5) И под конец в цикле с помощью метода isNumber по новой заполнил массив. Здесь кстати интересно. Шаблон массива у нас уже есть с занесенными строками и числами. Проходясь по массиву циклом определяем если в ячейке строка, заносим туда значение элемента (0) листа строк и сразу удаляем этот элемент из листа. Если в ячейке массива число, заносим туда элемент (0) листа чисел и сразу удаляем этот элемент из листа. Тем самым в конце у нас останутся пустые листы, а массив будет заполнен по шаблону. Ну и на всякий, чтоб привести число к строке просто прибавьте к этому числу "" Как то так
Alukard14 уровень, London
18 May, 15:32
Изично, без подсказок и подсматриваний, правда метод sort() вышел на 27 строчек, к коллекциям не прибегал и ничего не импортировал, а также отдельных листов и массивов не создавал.
Anuar14 уровень
16 May, 20:45
Решил задачу - результат выдает правильно и валидатор принял решение. Хочу узнать у более опытных коллег, насколько я правильно решил задачу с точки зрения сложности решения, нюансов по скорости данного алгоритма, читабельности и т.д. И как лучше было бы решить? Заранее спасибо.
Life DIY15 уровень, Екатеринбург
15 May, 06:10
метод array = 1:39 и 28 строк вместе с сигнатурой и скобками.