Вы помните мой коврик, правильно сгруппированный по цветам ?
Вчера я смотрел на это и понял, что некоторые буквы вписываются в другие. Пример: буква P
помещается в том месте, куда R
идет буква . Итак, вот простая задача: с учетом двух букв вернуть истинное значение, если одна из букв вписывается в другую (прямо или повернуто, но не перевернуто), или ложное значение, если они этого не делают. То есть, если введено значение [P,R]
или [R,P]
, вы должны вернуть truey, потому что в обоих случаях одна буква помещается внутри другой. Если вы получите, [L,U]
вы должны вернуть фальси, так как ни один не помещается внутри другого.
правила
- Ввод должен состоять из двух буквенно-цифровых символов в диапазоне [0-9A-Z], поскольку в мате также есть числа в любой нужной форме (два отдельных символа в качестве двух входных данных, список с двумя символами, строка с 2 символа, что угодно).
- Вывод должен быть согласованным (значения truey и falsey должны быть всегда одинаковыми).
Ниже приведена таблица фитингов (обратите внимание, что буква всегда помещается на свое место, на случай, если вы получите что-то вроде
[Y,Y]
ввода):char fits inside chars -------------------------------------------------------- C G,O F B,E,P,R G O I 0,1,7,B,D,E,F,H,K,L,M,N,O,P,R,T,V,W,X,Z L E M W P R S O V A W M 0 O 1 B,E,L 3 O 6 9,O 8 O 9 6,O
Я торжественно клянусь, что проверил каждую примерку на коврике моего ребенка. (Сушит пот со лба.)
Это код-гольф , поэтому победит самый короткий код для каждого языка!
Некоторые тестовые случаи
input output
-------------
[C,G] truthy (C fits inside G)
[G,C] truthy (C fits inside G)
[F,R] truthy (F fits inside R)
[M,W] truthy (both fit inside the other)
[O,S] truthy (S fits inside O)
[T,T] truthy (T fits in its place)
[E,V] falsey (no fit found)
[P,L] falsey
Песочница пост . Пожалуйста, простите меня, если вы заметите больше деталей, которые я пропустил. Большое спасибо Οurous за помощь со списком деталей.
1
не подходитF
?1
его,F
но это не разрешено в моем мате. :-)Ответы:
Python 2 ,
135130129 байтов-1 байт благодаря Линн
Попробуйте онлайн!
Python 3 , 143 байта
Попробуйте онлайн!
источник
Сетчатка ,
9392 байтаПопробуйте онлайн! Редактировать: 1 байт сохранен благодаря @ovs.
источник
Чисто ,
276226 байтСмутно в гольфе. Завтра отполирую.
Попробуйте онлайн!
источник
Haskell ,
149145 байтовПопробуйте онлайн!
источник
Javascript
155 153 151149 байтЯ думаю, что это работает во всех случаях, 1/0 для true / false.
Объяснение:
Changelog:
источник
c
подходитf
илиf
подходитc
? Кажется, вы проверяете только один случай.f
подходитc
includes(f)
вместо того,indexOf(f)>=0
чтобы сохранить 2 байта.Юлия 0,6 , 139 байт
Попробуйте онлайн!
Сохранено несколько байтов путем группировки символов, которые вписываются в 'O'. Но тестирование обратного ввода использует слишком много кода ...
Объяснение:
zip(☐)
застегивает соответствующие одиночные буквы из"OCFILMPV16"
& строки совпадающих букв..in(☐)
применяется поэлементно, например(in(a,'O'),in(b,"OCFILMPV16"))
all(.in(☐))
Оба должны быть найдены ...|
илиa,b
илиb,a
...any(map(☐))
хотя бы для одного элемента из архива.источник
Котлин ,
147139 байтПопробуйте онлайн!
Пример Try It Online включает тестовые примеры для каждой положительной комбинации и несколько отрицательных.
Я не оптимизировал рег. слишком много, так что это может быть дольше, чем необходимо
РЕДАКТИРОВАТЬ: сохранил несколько байтов на reg.ex.
источник
C (gcc) , 211 байт
Первая попытка Очень просто.
Попробуйте онлайн!
источник
PHP , 204 байта
-147 байт, потому что я вернулась, чтобы удалить 2 байта, только чтобы обнаружить, что в моем коде было несколько ошибок и неиспользуемых переменных! Мой код теперь намного короче.
Попробуйте онлайн!
источник
Рубин, 140 байт
Почти так же, как и в ответе на python 3, но с другим исполнением.
источник