Это вторая в серии, третья - это две дороги, расходящиеся в желтом лесу (часть 3)
Это основано на двух дорогах, раскинувшихся в желтом лесу (часть 1) , моей предыдущей проблеме. Это было довольно хорошо получено, но это также было довольно тривиально (Java-ответ в 52 байта!), Поэтому я сделал что-то более сложное ...
Вдохновение
Эта задача вдохновлена знаменитым стихотворением Роберта Фроста «Дорога не пройдена»:
Две дороги расходились в желтом лесу,
И извините, я не мог путешествовать обоими
И быть одним путешественником, долго я стоял
И смотрел вниз на одну так далеко, как мог,
На то, где оно согнулось в подлеске;... 2 абзаца обрезаны ...
Я расскажу это со вздохом
Где-то через века и века:
две дороги расходились в лесу, и я…
я выбрал ту, по которой меньше путешествовал,
И это имело все значение.
Обратите внимание на вторую и последнюю строку I took the one less traveled by,
. Ваша цель состоит в том, чтобы найти путь, который наименее пройден в вашей строке ввода. Вы должны вывести одно из двух значений, отличных друг от друга, которые сигнализируют, в какую сторону вам следует повернуть, чтобы выбрать менее пройденный путь. Как только дорога разветвляется (след шестиугольников меняется на число), вы находитесь на перекрестке. Оттуда будут 2 пути, состоящие из цифр. Путь, чьи цифры имеют наименьшую сумму, будет дорогой, не взятой. Обратите внимание, что у дороги, которая не выбрана, может быть больший путь, но меньшая сумма пути. Вот несколько примеров / тестовых примеров из программы, которая печатает «влево» или «вправо» для пути, не принятого:
1 2
1 2
1 2
#
#
#
left (3 < 6)
1 2
2 2
1 1
#
#
#
left (4 < 5)
12 2
11 2
1 1
#
#
#
right (6 > 5)
99 989
99 89
99 99
99 99
#
#
#
#
left (72 < 79)
1111 1110
001 111
11 11
11 11
#
##
##
##
left (9 < 10) (Note: 1111 is interpreted as 1+1+1+1=4, not 1111=1111)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
Вещи, чтобы принять и запомнить
- Там всегда будет 2 пути. Ни больше ни меньше.
- Вы можете получать входные данные из STDIN по одной строке за раз, строку, содержащую символы LF, или строку, содержащую буквенную обратную косую черту и n. Если вам нужен вклад каким-либо другим способом, попросите одобрения в комментариях.
- Вам не нужно беспокоиться о неверном вводе или связанных путях. Они никогда не будут введены в вашу программу / функцию.
- Ввод может быть любой длины по ширине или высоте, меньше строкового ограничения вашего языка.
- Там никогда не будет
#
и число в одной строке. - Все цифры в пути являются положительными целыми числами от 0 до 9.
- Ввод или вывод с завершающим переводом строки разрешен.
- См. Мой ответ JS ES6 ниже для примера.
- Между двумя путями всегда будет хотя бы 1 пробел.
- 2 пути всегда будут иметь одинаковую высоту для каждой карты, но могут отличаться на других картах.
- Если вы не уверены в конкретном тестовом случае, пожалуйста, сообщите мне.
- 1111 интерпретируется как 1 + 1 + 1 + 1 = 4, а не 1111 = 1111. Карта представляет собой последовательность однозначных чисел, а не чисел произвольной длины.
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах!
- Стандартные лазейки запрещены
Если у вас есть какие-либо вопросы по поводу этого задания, задавайте их в комментариях, и удачи!
let answers = $('div > h1').map(function(){return $(this).clone().children(':not(a)').remove().end().text().replace(/\s+/g,' ').trim()}).get();answers.splice(0, 1);answers.join('\n');
$("div > h1").map(function(){return $(this).text()}).get().join("\n");
в консоль!