Аналогично этому вопросу , но это вариант кроссворда!
Вместо одной буквы на квадрат сетки, вы можете иметь одну или две .
Входные данные:
- 2d массив, или что-то еще работает на вашем языке.
- Вы можете принять правильные данные
- Любой размер массива должен работать
Выход:
- Массив всех слов
- Через и вниз
- Все слова должны быть объединены, т. Е. Связаны в непрерывную цепочку слов (если не вернуть false)
- Слова должны состоять как минимум из двух квадратов сетки , а не букв
Пример:
[["", "wo", "r", "k"],
[ "", "r", "", ""],
[ "he", "l", "lo", ""],
[ "", "d", "ad", ""]]
Возвращает:
["work", "world", "hello", "load", "dad"]
Пример:
[["he", "ll", "o"],
[ "", "", ""],
[ "wo", "r", "ld"]]
Возвращает:
false
Это самый быстрый код , поэтому я буду запускать его на Windows 7 с 2,5 ГГц и 16 ГБ оперативной памяти. Если ваш код действительно эзотерический, предоставьте ссылку на компилятор, чтобы я мог его запустить.
string
fastest-code
crossword
epicbob57
источник
источник
Ответы:
Python 3
Использование:
Функция принимает массив строк в качестве входных данных:
crosswords( [["", "wo", "r", "k"], [ "", "r", "", ""], [ "he", "l", "lo", ""], [ "", "d", "ad", ""]])
Возвращает строку
false
когда подключение возвращает несколько меток. В противном случае возвращает массив допустимых слов.Я рассчитал это
timeit
,time.time()
используя консольную команду,time
но я не знаю, какую из них использовать или какую разместить здесь.источник