Кроссворд

  • 11
  • Недоступна
Нет, нам не придётся решать кроссворды. Нам нужно решить нетривиальную задачку про кроссворды. Есть двумерный массив, а в нём — слова, слова, слова. По горизонтали, по вертикали, по диагонали… Нужно найти все слова в массиве.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (98)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Sasha S25 уровень, Киев
16 декабря 2018, 20:21
загальна кількість рядків коду 285. після попередніх задач було впадло рефакторити. но зато з першої спроби))
Gogogo30 уровень
14 ноября 2018, 14:31
Если у Вас всё верно, но не проходит валидацию, протестируйте так. Добавьте в кроссворд одно и то же слово несколько раз, в т.ч. начинающееся из одной точки и идущее в разных направлениях. Ваш код должен внести его в лист столько раз, сколько есть разных вариантов.
Сергей31 уровень, Нижний Новгород
28 ноября 2018, 22:18
У меня валидатор принял решение где находится хотя бы один вариант слова из списка.
11 ноября 2018, 21:40
Ожидаемый результат: home - (5, 3) - (2, 0) same - (1, 1) - (4, 1) ээээ, попробуйте сделать System.out.println((char)crossword[3][5]). Они перепутали i, j местами или я что то не правильно понял?
Pavel Soros23 уровень
11 ноября 2018, 14:14
Такого велосипеда я ещё не писал. Метод detectAllWords 120 строк. Итог приятный, валидатор принял с первого раза.
Павел Афанасьев33 уровень, Москва
6 ноября 2018, 20:24
C 8-ой попытки. Но... Метод detectAllWords 58 строк! Спасибо to Domadin !
King32 уровень, Санкт-Петербург
31 октября 2018, 14:18
Еееее! Общее количество строк кода - 261))
mr. Cat25 уровень, Екатеринбург
26 октября 2018, 06:52
1. циклом forech идем по массиву полученных слов 2. двумя вложенными циклами обходим переданный массив буков, при совпадении с первой буквой слова запускаем 8 проверок 3. в проверках первым условием ставим вместимость длины слова в пределах массива буков 4. если вмещается, то запускаем цикл на сложение проверяемого слова из буков массива по вектору 5. если сложенное слово эквивалентно проверяемому, добавляем в его лист (координаты высчитываем естественно) Задача простая, но муторная в плане внимательного отслеживания всех индексов на этапе проверки векторов слова. Прекрасный пример того, чем в основном придется заниматься работая программистом :)
Sergey_Vladimirovich32 уровень, Минск
22 сентября 2018, 10:13
Ну не знаю. Я как-то по-своему сделал... В каждом из 4-х методов разбил двумерный массив на массив строк (горизонтальных, вертикальных и диагональных в 2-х направлениях) и искал в каждой строке слова... С диагональными проходами чуть помучиться пришлось (в конце там просто шаманство какое-то получилось), зато просто и понятно.
SpacePurr28 уровень, Казань
25 августа 2018, 20:58
Решил через рекурсию методом, который возвращает Word. Валидатор ругается на то, что список не того размера, хотя все верно. После пары часов мучений скопипастил код у ребят снизу. Обидно немного((
2 августа 2018, 09:19
решил двумя способами - рекурсией и циклами. кайф