grid размером m × n в каждой клетке стоит строчная латинская буква, а в dictionary лежит список слов. Слово считается найденным, если его можно «прочертить» по полю: начать с какой-нибудь клетки и каждую следующую букву брать из клетки, соседней с предыдущей по стороне (вверх, вниз, влево или вправо). Диагонали не считаются, и одну клетку внутри одного слова дважды использовать нельзя.
Верните все слова из dictionary, которые можно найти на поле. Каждое слово — один раз, порядок любой.grid=[['c', 'a', 't'], ['x', 'r', 'o'], ['d', 'o', 'g']], dictionary=['cat', 'car', 'rod', 'dog', 'tar', 'cart'] → ['cat', 'car', 'tar', 'rod', 'dog']
cat идёт по верхней строке, car — вправо и вниз, dog — по нижней строке, rod — вниз от r и влево. tar — от t влево и вниз. А для cart после r нужна соседняя t, а её рядом нет.
grid=[['a', 'b'], ['b', 'a']], dictionary=['aba', 'abab', 'aa'] → ['aba', 'abab']
aba и abab обходят клетки по кругу. Для aa две буквы a должны быть соседями, но они стоят по диагонали.
grid=[['z']], dictionary=['zz'] → []
Клетку нельзя использовать дважды, поэтому из одной z слово zz не собрать.
grid[i][j] — строчная латинская букваdictionary различныgrid=[['c', 'a', 't'], ['x', 'r', 'o'], ['d', 'o', 'g']], dictionary=['cat', 'car', 'rod', 'dog', 'tar', 'cart']
['cat', 'car', 'tar', 'rod', 'dog']
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 75 тестов на сервере, включая скрытые.