Задача по алгоритмам

  • 5
  • Недоступна
Вместо кубиков жители планеты Линейный Хаос дают своим детям решать задачки на сортировку. Вот вам одна из забавок маленьких упорядоченных изоморфиков, развлекитесь, как следует: после того, как пользователь введет с клавиатуры список слов (и чисел), программа должна вывести слова в возрастающем порядке, а числа — в убывающем.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (212)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Wladyslaw12 уровень
понедельник, 05:47
С первого раза. Просто описал два цикля - для сравнения строк и для сравнения чисел - а потом просто вызвал соответствующий в зависимости от того числа ли сравниваем
MartyMcAir14 уровень
16 июня, 10:27
ух жестко.. А казалось бы такая простая задача. При использовании метода isGreaterThan() - внутри пузырьковой сортировки, потом их циклом reverse и потом еще полотно кода.. На выходе все верно, НО валидатор не принимает.. (Пишет что мол не отсортировано в алфавитном порядке). Но зато решение этих 2х строк: isGreaterThan("aaa", "bb"); и Collections.sort(listStr); принял. ___ круто.
Egor19 уровень, Санкт-Петербург
1 июня, 20:25
Отдыхайте чаще, называется... Не докрутил колёсиком до конца кода задачи и не увидел метода isNumber. Решил задачу "как я вижу", решал долго, с листочками, а потом перечитывая условия офигел от того, что был isNumber и его надо использовать)) Своё решение не переделывал, а просто присвоил булевой переменной результат isNumber'а, и валидатор скушал решение)) Не повторяйте моих ошибок! ;)
Азамат18 уровень, Санкт-Петербург
29 мая, 23:28
То чувство когда фразу "Слова вывести в возрастающем порядке" понял не правильно и запилил сортировку по алфавиту... А метод isGreaterThan юзал только если слова по началу одинаковы, но разные по длине. Жеванный крот время потрачено... буду внимательнее
28 мая, 12:52
Охъ мне вот эти задачи прям очень нравятся. Получаются прям клево
Константин18 уровень, Москва
22 мая, 12:43
Очень не хотелось пузырьком массивы перебирать. Поэтому создал два листа (коллекции) : со словами и с числами. Отсортировал их как надо. Исходный массив заполнил 0 и 1 - где слова и где числа. Далее перенёс из двух листов в исходный массив с учётом порядка. Ну и всё. Чтобы валидатор не ругался использовал ненужную функцию isGreaterThan. boolean b = isGreaterThan("aaa", "bbbbb"); //немного читтерства 2 for и 2 if
Valen10 уровень, Днепр
25 мая, 17:09
Отличное решение! Только можно не заполнять 0 и 1, а сделать проверку при переборе основного массива на isNumber. Если true - вставляем из одного листа, если false - из второго.
Константин18 уровень, Москва
25 мая, 17:18
Спасибо. Да, так лучше, не создаём лишний массив :)
Денис12 уровень, Киев
14 июня, 17:53
Отличная задача, пришёл примерно к такому самому решению. Отсортировал лист со словами и с числами, потом по порядку вставил в исходный массив.
Vgoose14 уровень, Москва
19 мая, 20:12
Сначала подгорало, думал подвох какой что-ли в задаче? Но когда решил, стало светло, радостно, тепло и уютно :) Спасибо за задачу. Подвоха нет. Алгоритм очень прост в реализации. В итоге: 2 for и 4 if
Александр13 уровень, Екатеринбург
8 мая, 05:48
Решил, сложновата немного было, но помоему можно было проще решить, тк в методе sort, я 5 раз изпользую for, 2 из которых с вложеным for )))
Dmytro Tretiakov18 уровень
5 мая, 15:24
Очень интересная задача.. Не зря, мне кажется, в этой задаче сделали метод isNumber. Простое и лёгкое решение - это создать список порядка ввода используя метод isNumber, в этой же функции раскидать числа и "нечисла" по двум массивам. После этого отсортировать эти два массива и в конце используя массив порядка ввода поочерёдно выводить данные из массивов.. Надеюсь, кому-то поможет.
Talgat16 уровень, Алматы
2 мая, 16:51
Лучшая задача пока имхо) Решил через два дополнительных List-а, отсортировав их, переопределял элементы оригинального массива (array) и попутно удаляя элементы из листов. В комментах многие решали через пузырьки, попробую тоже)