Я предполагаю, что это довольно открытый и не совсем конкретный вопрос, но я думаю, что это хороший пример того, что может легко сделать наш мозг, что может быть трудно кодировать.Решение было бы круто, но Меня действительно больше интересует, каков ваш потенциальный подход .
Этот конкретный вопрос из раздела теории графов CodeSignal, и просит нас написать функциюэто определяет, если из заданной матрицы смежности (не важно знать для этого примера), если граф напоминает бабочку .
Вы можете представить центральную вершину с двумя парами 'дорог'(или градусов), каждая пара разделяет эксклюзивную "дорогу" между двумя другими своими вершинами.
Я сделал несколько других из этих проблем, но эта из нового набора, состоящего из определенных форм, и намного легче для определения шаблонов для передачи ввода.Я использовал тонны методов Array.prototype для создания и преобразования многомерных массивов. Каждая проблема занимала у меня довольно болезненное время. Я действительно изо всех сил пытаюсь найти эффективный способ обработки этих данных в целом.
Вот список 'дорог'(или градусы) в качестве контрольного примера. (я для удобства превратил матрицу смежности в массив дорог.) Каждая цифра представляет узел или вершину (их будет всего пять, если это проще) ...
[ [ '0', '1' ],
[ '0', '2' ],
[ '1', '0' ],
[ '1', '2' ],
[ '2', '0' ],
[ '2', '1' ],
[ '2', '3' ],
[ '2', '4' ],
[ '3', '2' ],
[ '3', '4' ],
[ '4', '2' ],
[ '4', '3' ] ]
(примечание: центральная вершина не будет указана в массиве, и это только один пример.)
Даже без графикаВ течение нескольких секунд мы можем сказать, что это действительный "галстук-бабочка".
Примечание: некоторые дороги повторяются, но я сделал это нарочно ... Я подумал, если этолегче увидеть, легче кодировать.
Мы хотим прочитать из такого массива и определить (вернуть true), образуют ли дороги bowtie .|> <|</p>
Я спрашиваю, потому что держу пари, что есть некоторые особенности JavaScript, о которых я даже не подозревал.Я знаю, что такое Карты и Наборы, и я думал, что Карта может помочь, но мне не хватает опыта программирования.Заранее спасибо !!!