Получено из этого , сейчас удалено, пост.
Если дана строка, ответьте (правда / ложно или два непротиворечивых значения), если она представляет собой хороший пароль епископа, то есть когда выполняются все следующие условия:
в нем не менее 10 символов
в нем как минимум 3 цифры (
[0-9]
)это не палиндром (идентичный самому себе при обращении)
Вы получаете бонус в 0 байт, если ваш код - хороший пароль епископа.
Предупреждение: Do не использовать Bishop Совершенства как мера фактической силы пароля!
Примеры
Хорошие епископские пароли
PPCG123GCPP
PPCG123PPCG
PPCG123gcpp
0123456789
Tr0ub4dor&3
Не Хорошие Епископские пароли
PPCG123
(слишком короткий)
correct horse battery staple
(недостаточно цифр)
PPCG121GCPP
(палиндром)
(слишком короткий и недостаточно цифр)
abc121cba
(слишком короткий и палиндром)
aaaaaaaaaaaa
(палиндром и недостаточно цифр)
abc99cba
(все неправильно)
Ответы:
Python 2 ,
61595451 байтПопробуйте онлайн!
-5 байт, благодаря Эрику-аутголферу
-3 байт, благодаря xnor
источник
s[:9]<s
, которая хорошо сочетается с проверкой без палиндрома:s[:9]<s!=s[::-1]
05AB1E , 12 байтов
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
Japt ,
1714 байтов-3 байта, переставленные @Shaggy
Попробуйте онлайн!
Japt , 15 байт (0 байт, бонус: v)
Попробуйте онлайн!
источник
R ,
8070626463 байтаПопробуйте онлайн!
От digEmAll, а некоторые тоже переставляют
Попробуйте онлайн!
Довольно просто, никаких удивительных трюков здесь нет. После ввода пользователем строки:
источник
!all(s==rev(s))
сany(s!=rev(s))
которой будет сохранить один байт. Я чувствую, что проверка длины тоже может быть уменьшена, но я не уверен, как это сделать (какой-либоnchar
или какой-тоsum(x|1)
хак)any(s>rev(s))
, сработает - если символ меньше своего палиндромного аналога, то на другом конце пароля обратное утверждение будет верным. Это сохраняет еще один байт.>2
APL + WIN,
36, 3029 байт7 байтов сохранено благодаря Адаму
Индекс происхождения = 0
Запрашивает ввод строки
Попробуйте онлайн! Предоставлено Dyalog Classic
Объяснение:
Код также подходит для бонуса, поскольку это хороший пароль епископа.
источник
≢
что~
...≡
? И даже если вы этого не сделаете, вы можете слиться×~
в>
Брахилог ,
1812 байтСпасибо за советы, Kroppeb и Fatalize !
Попробуйте онлайн!
объяснение
Программа представляет собой один предикат, состоящий из двух частей, которые связаны друг с другом
&
.Первый:
Во-вторых:
источник
{∋.∈Ị∧}ᶜ
может быть{∋ị}ᶜ
¬↔?l>9&ịˢl>2
ị
, но имеет смысл, что это будет успешно, если персонаж будет цифрой. Спасибо!?
подобного, это аккуратно. Спасибо!Желе , 12 байт
Попробуйте онлайн!
[]
если не достаточно цифр (пустой список, ложь),0
если в противном случае плохой (ноль, ложь),1
если хороший (ненулевой, правдивый).источник
Java 8, 92 байта
Попробуйте онлайн.
Объяснение:
источник
JavaScript,
605646 байтПринимает ввод как массив символов. Выходы
1
для правды и0
фальсея.Попробуйте онлайн!
Сохранено 10 байтов (!) Благодаря Арно .
источник
Ракетка , 122 байта
Попробуйте онлайн!
источник
APL (Dyalog Unicode) , 25 байтов SBCS
Попробуйте онлайн!
источник
(9<≢)∧(3≤1⊥∊∘⎕D)∧⊢≢⌽
а затем сохранить еще один байт, переставив, чтобы избежать скобок:(9<≢)∧≢∘⌽⍨∧3≤1⊥∊∘⎕D
дайте им знать, если вам нужно объяснение этих шагов.Perl 5
-p
, 33 байтаTIO
источник
Чистый , 66 байт
Попробуйте онлайн!
s<>reverse s
:s
Не палиндромs%%(0,8)<s
: первые 9 символовs
меньше, чем всеs
sum[1\\c<-s|isDigit c]>2
:s
имеет более двух цифристочник
Сетчатка 0.8.2 , 40 байт
Попробуйте онлайн! Ссылка включает в себя тестовые случаи. Объяснение:
Проверяет не менее 10 символов.
Проверяет не менее 3 цифр.
Удалите первый и последний символ, если они совпадают.
Если есть хотя бы 2 символа, то это не палиндром.
Балансирующие группы .NET означают, что это можно сделать в одном регулярном выражении, но это занимает 47 байтов:
Попробуйте онлайн! Ссылка включает в себя тестовые случаи.
источник
Красный ,
117111 байтПопробуйте онлайн!
источник
Python 3 ,
747264 байтаСпасибо Нейлу А. за -2 байта!
Спасибо Джо Кингу за -8 байт!
Объяснение:
Попробуйте онлайн!
источник
Perl 6 , 32 байта
Попробуйте онлайн!
Блок анонимного кода, который просто обеспечивает соблюдение всех правил.
Объяснение:
источник
K (ок) ,
3128 байт-3 байта благодаря ngn!
Попробуйте онлайн!
источник
+//
(сумма до сходимости) вместо+/+/
(сумма сумма)x^x^y
чтобы найти пересечение между двумя списками:#x^x^,/!10
. это может быть сокращено до#x^x^/!10
(^
«без»,x^/
... is-^
сокращение с начальным значениемx
)>
(или<
) может использоваться как «и не»:{(x~|x)<(2<#x^x^/$!10)*9<#x}
JavaScript (Node.js) , 70 байт
Попробуйте онлайн!
Возвращает 1 для истины и 0 для ложных
источник
C # (интерактивный компилятор Visual C #) , 67 байт
Попробуйте онлайн!
источник
Пип , 19 байт
Попробуйте онлайн! (все тесты)
объяснение
С
a
будучи первым аргументом командной строки:источник
Stax , 14 байт
Запустите и отладьте его
источник
Pyth, 17 байт
Попробуйте онлайн здесь или проверьте все тестовые примеры сразу здесь .
источник
Groovy, (47 байт)
(Бонусное включение оставлено читателю в качестве упражнения)
источник