Derivado desta postagem, agora excluída.
Dada uma sequência, responda (verdade / falsidade ou dois valores consistentes) se constitui uma boa senha de bispo, ou seja, quando todas as seguintes condições são atendidas:
tem pelo menos 10 caracteres
tem pelo menos 3 dígitos (
[0-9]
)não é um palíndromo (idêntico a si mesmo quando invertido)
Você recebe um bônus de 0 bytes se o seu código for uma boa senha de bispo.
Aviso: Do não usar Bishop bondade como uma medida de força da senha real!
Exemplos
Senhas do bom bispo
PPCG123GCPP
PPCG123PPCG
PPCG123gcpp
0123456789
Tr0ub4dor&3
Senhas do Bispo Não Bom
PPCG123
(muito curto)
correct horse battery staple
(dígitos insuficientes)
PPCG121GCPP
(palíndromo)
( dígitos muito curtos e insuficientes)
abc121cba
(muito curto e palíndromo)
aaaaaaaaaaaa
(palíndromo e dígitos insuficientes)
abc99cba
(tudo errado)
Respostas:
Python 2 ,
61595451 bytesExperimente online!
-5 bytes, graças a Erik, o Outgolfer
-3 bytes, graças ao xnor
fonte
s[:9]<s
, que combina bem com a verificação não palíndromo:s[:9]<s!=s[::-1]
05AB1E , 12 bytes
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
Japonês ,
1714 bytes-3 bytes reorganizados por @Shaggy
Experimente online!
Japonês , 15 bytes (Bônus de 0 bytes: v)
Experimente online!
fonte
R ,
8070626463 bytesExperimente online!
De digEmAll, e algumas reorganizações também
Experimente online!
Bem simples, sem truques realmente incríveis aqui. Após o usuário inserir a string:
fonte
!all(s==rev(s))
com oany(s!=rev(s))
que salvará um byte. Eu me sinto como a verificação de comprimento pode ser reduzida também, mas não sei como (sejanchar
ou algum tipo desum(x|1)
corte)any(s>rev(s))
que funcionará --- se um caractere for menor que seu equivalente palindrômico, no outro extremo da senha o inverso será verdadeiro. Isso economiza outro byte.>2
APL + WIN,
36, 3029 bytes7 bytes salvos graças a Adám
Origem do índice = 0
Solicita a sequência de entrada
Experimente online! Cortesia de Dyalog Classic
Explicação:
O código também se qualifica para o bônus, pois é uma boa senha de bispo.
fonte
≢
que é~
...≡
? E mesmo se não o fizer, você pode se fundir×~
em:>
Braquilog ,
1812 bytesObrigado pelas dicas, Kroppeb e Fatalize !
Experimente online!
Explicação
O programa é um único predicado, composto por duas partes encadeadas
&
.Primeiro:
Segundo:
fonte
{∋.∈Ị∧}ᶜ
pode ser{∋ị}ᶜ
¬↔?l>9&ịˢl>2
ị
, mas faz sentido que seja bem-sucedido se o personagem for um dígito. Obrigado!?
coisas assim é legal. Obrigado!Gelatina , 12 bytes
Experimente online!
[]
se não houver dígitos suficientes (lista vazia, falsidade),0
se for incorreto (zero, falsidade),1
se for bom (diferente de zero, verdadeiro).fonte
Java 8, 92 bytes
Experimente online.
Explicação:
fonte
JavaScript,
605646 bytesRecebe a entrada como uma matriz de caracteres. Saídas
1
para verdade e0
para falsey.Experimente Online!
Economizou 10 bytes (!) Graças a Arnauld .
fonte
Raquete , 122 bytes
Experimente online!
fonte
APL (Dyalog Unicode) , SBCS de 25 bytes
Experimente online!
fonte
(9<≢)∧(3≤1⊥∊∘⎕D)∧⊢≢⌽
e depois salvar mais um byte, reorganizando para evitar parênteses:(9<≢)∧≢∘⌽⍨∧3≤1⊥∊∘⎕D
informe-os se precisar de explicação sobre essas etapas.Perl 5
-p
, 33 bytesTIO
fonte
Limpo , 66 bytes
Experimente online!
s<>reverse s
:s
não é um palíndromos%%(0,8)<s
: os 9 primeiros caracteres des
são menores que todoss
sum[1\\c<-s|isDigit c]>2
:s
tem mais de dois dígitosfonte
Retina 0.8.2 , 40 bytes
Experimente online! O link inclui casos de teste. Explicação:
Verifica pelo menos 10 caracteres.
Verifica pelo menos 3 dígitos.
Remova o primeiro e o último caractere, se eles corresponderem.
Se houver pelo menos 2 caracteres, não foi um palíndromo.
Os grupos de balanceamento do .NET significam que isso pode ser feito em uma única expressão regular, mas isso requer 47 bytes:
Experimente online! O link inclui casos de teste.
fonte
Vermelho ,
117111 bytesExperimente online!
fonte
Python 3 ,
747264 bytesObrigado Neil A. por -2 bytes!
Obrigado Jo King por -8 bytes!
Explicação:
Experimente online!
fonte
Perl 6 , 32 bytes
Experimente online!
Bloco de código anônimo que simplesmente impõe o cumprimento de todas as regras.
Explicação:
fonte
K (oK) ,
3128 bytes-3 bytes graças a ngn!
Experimente online!
fonte
+//
(soma até a convergência) em vez de+/+/
(soma soma)x^x^y
para encontrar a intersecção entre duas listas:#x^x^,/!10
. este pode ser reduzido para#x^x^/!10
(^
é "sem",x^/
... é^
-redução com valor inicialx
)>
(ou<
) pode ser usada como "e não":{(x~|x)<(2<#x^x^/$!10)*9<#x}
JavaScript (Node.js) , 70 bytes
Experimente online!
Retorna 1 para verdadeiro e 0 para falso
fonte
C # (compilador interativo do Visual C #) , 67 bytes
Experimente online!
fonte
Pip , 19 bytes
Experimente online! (todos os casos de teste)
Explicação
Com
a
sendo o primeiro argumento de linha de comando:fonte
Stax , 14 bytes
Execute e depure
fonte
Pitão, 17 bytes
Experimente on-line aqui ou verifique todos os casos de teste de uma vez aqui .
fonte
Groovy, (47 bytes)
(A inclusão de bônus é deixada como um exercício para o leitor)
fonte