Найти Х
Я был вдохновлен математическими вопросами, в которых задают «Найти Х» для заданной формы. Первоначально я собирался поставить перед собой задачу напечатать координаты x и y символа 'x' в строке. Но я предположил, что это будет слишком просто. Поэтому я рассмотрел контекст, в котором они обычно находились, и решил, что найти длину Линии рядом с x просто показалось уместным.
Если задан строковый ввод, содержащий диаграмму ascii «строк», а также один символ «x» и потенциально нежелательные символы, выведите длину единственной строки, к которой непосредственно примыкает «x».
Примеры
Входные данные:
|
|
|x
|
|
Ouput:
5
Входные данные:
|\
| \x
| \
|___\
Выход:
4
Входные данные:
Diagram of a Wobbly Line:
IRRELEVANTTEXT____
____ ____/
\___/ X ;)
x
Выход:
3
Входные данные:
______________
/ ____________ \
|/ __________ \|
||/ ________ \||
|||/ ______ \|||
||||/ \||||
|||||/ x |||||
|||||\_____/||||
||||\_______/|||
|||\_________/||
||\___________/|
\_____________/
Выход:
5
Примечания
- Допустимые символы строки
\/_|
\
соединяет верхний левый и правый нижний от себя./
соединяет верхний правый и нижний левый от себя._
соединяет слева и справа от себя|
соединяет верх и низ самого себя- Строка всегда будет прямой и состоит только из одного из символов строки, повторенных n раз.
- Символ х всегда будет строчным, и он всегда будет единственным на диаграмме.
- Прилагательное относится к x, являющемуся ровно одним символом выше, ниже или помимо этого.
- Х всегда будет рядом точно с одной линией.
- Вкладки никогда не появятся на входе.
- Вход и выход могут быть любого приемлемого формата.
- Это Code Golf, поэтому выигрывает самый короткий код!
- ВЕСЕЛИТЬСЯ. СДЕЛАЙ ЭТО. НАСЛАЖДАЙСЯ.
@
тестовый пример, который имеет форму, аналогичную ответам на стресс-тест.Ответы:
JavaScript (ES6),
165155 байтРЕДАКТИРОВАТЬ: встроенные х и ш , чтобы сохранить еще несколько байтов.
Гольф (предполагается, что ввод дополнен пробелами, чтобы сделать прямоугольник)
расширенный
Тестовое задание
Пример вывода (если вы запустите его в консоли Google Chrome Developer Tools)
источник
Python 3,
428408385378 байтРаботает, но имеет массу возможностей для игры в гольф. Я немного ржавый.
Предполагается, что ввод дополнен пробелами для создания прямоугольника.
РЕДАКТИРОВАТЬ: Спасибо @Artyer за 23 байта экономии!
EDIT2: Wow я полностью пропустил 6-байтовую экономию. Сохранено еще 1 путем замены сторон проверки на равенство.
Расширенная версия с объяснением:
источник
<!-- language-all: lang-py -->
для подсветки синтаксиса.*i,=map(list,inputtt.split('\n'))
(*i,
создаетi
список вместо карты) (еще -6 байт)Луа, 480 байт
Lua, будучи многословным языком, не превосходит Python Answer. Но это не нужно.
Похож на мою эталонную реализацию, но в действительности играет в гольф и делает некоторые вещи более умными, чем раньше. Тем не менее, возможно, можно было бы играть в гольф немного лучше, хотя.
С комментариями.
источник
JavaScript (ES6), 175
Предполагая, что ввод дополнен пробелами, чтобы сделать прямоугольник.
Меньше гольфа
Тестовые точки вместо пробелов для ясности
источник