Derivado de esta publicación, ahora eliminada.
Dada una cadena, responda (verdadero / falso o dos valores consistentes) si constituye una buena contraseña de Bishop, que es cuando se cumplen las siguientes condiciones:
tiene al menos 10 caracteres
tiene al menos 3 dígitos (
[0-9]
)no es un palíndromo (idéntico a sí mismo cuando se invierte)
Obtiene un bono de 0 bytes si su código es una buena contraseña de Bishop.
Advertencia: ¡ No use la bondad de Bishop como una medida de la fuerza real de la contraseña!
Ejemplos
Good Bishop contraseñas
PPCG123GCPP
PPCG123PPCG
PPCG123gcpp
0123456789
Tr0ub4dor&3
No son buenas contraseñas de Bishop
PPCG123
(demasiado corto)
correct horse battery staple
(no hay suficientes dígitos)
PPCG121GCPP
(palíndromo)
(demasiado corto y no hay suficientes dígitos)
abc121cba
(demasiado corto y palíndromo)
aaaaaaaaaaaa
(palíndromo y no hay suficientes dígitos)
abc99cba
(todo está mal)
Respuestas:
Python 2 ,
61595451 bytesPruébalo en línea!
-5 bytes, gracias a Erik the Outgolfer
-3 bytes, gracias a xnor
fuente
s[:9]<s
, que combina bien con la verificación sin palíndromo:s[:9]<s!=s[::-1]
05AB1E , 12 bytes
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
Japt ,
1714 bytes-3 bytes reorganizados por @Shaggy
Pruébalo en línea!
Japt , 15 bytes (0 Bytes Bonus: v)
Pruébalo en línea!
fuente
R ,
8070626463 bytesPruébalo en línea!
Desde digEmAll, y algunos reorganizando también
Pruébalo en línea!
Bastante sencillo, no hay trucos realmente sorprendentes aquí. Después de que el usuario ingrese la cadena:
fuente
!all(s==rev(s))
conany(s!=rev(s))
lo que ahorrará un byte. Siento que la verificación de longitud también se puede reducir, pero no estoy seguro de cómo (cualquieranchar
o algún tipo desum(x|1)
pirateo)any(s>rev(s))
que funcionará --- si un personaje es menor que su contraparte palindrómica, entonces en el otro extremo de la contraseña, lo contrario será cierto. Eso ahorra otro byte.>2
APL + WIN,
36, 3029 bytes7 bytes guardados gracias a Adám
Origen del índice = 0
Solicita cadena de entrada
Pruébalo en línea! Cortesía de Dyalog Classic.
Explicación:
El código también califica para el bono, ya que es una buena contraseña de Bishop.
fuente
≢
cuál es~
...≡
? E incluso si no lo haces, puedes unirte×~
a>
Brachylog ,
1812 bytesGracias por los consejos, Kroppeb y Fatalize !
Pruébalo en línea!
Explicación
El programa es un predicado único, compuesto de dos partes que están encadenadas
&
.Primero:
Segundo:
fuente
{∋.∈Ị∧}ᶜ
puede ser{∋ị}ᶜ
¬↔?l>9&ịˢl>2
ị
, pero tiene sentido que tenga éxito si el personaje es un dígito. ¡Gracias!?
así es genial. ¡Gracias!Jalea , 12 bytes
Pruébalo en línea!
[]
si no hay suficientes dígitos (lista vacía, falsedad),0
si no es correcto (cero, falsedad),1
si es bueno (distinto de cero, verdad).fuente
Java 8, 92 bytes
Pruébalo en línea.
Explicación:
fuente
JavaScript,
605646 bytesToma entrada como una matriz de caracteres. Salidas
1
para la verdad y0
para falsey.¡Pruébelo en línea!
Guardado 10 bytes (!) Gracias a Arnauld .
fuente
Raqueta , 122 bytes
Pruébalo en línea!
fuente
APL (Dyalog Unicode) , SBCS de 25 bytes
Pruébalo en línea!
fuente
(9<≢)∧(3≤1⊥∊∘⎕D)∧⊢≢⌽
y luego guardar un byte más reorganizándolo para evitar a los padres: dígales(9<≢)∧≢∘⌽⍨∧3≤1⊥∊∘⎕D
si necesita una explicación de estos pasos.Perl 5
-p
, 33 bytesTIO
fuente
Limpio , 66 bytes
Pruébalo en línea!
s<>reverse s
:s
no es un palíndromos%%(0,8)<s
: los primeros 9 caracteres des
son menos que todoss
sum[1\\c<-s|isDigit c]>2
:s
tiene más de dos dígitosfuente
Retina 0.8.2 , 40 bytes
Pruébalo en línea! El enlace incluye casos de prueba. Explicación:
Comprueba al menos 10 caracteres.
Verificaciones de al menos 3 dígitos.
Elimina el primer y último personaje si coinciden.
Si hay al menos 2 caracteres, entonces no era un palíndromo.
Los grupos de equilibrio de .NET significan que esto se puede hacer en una sola expresión regular, pero que requiere 47 bytes:
Pruébalo en línea! El enlace incluye casos de prueba.
fuente
Rojo ,
117111bytesPruébalo en línea!
fuente
Pitón 3 ,
747264 bytesGracias Neil A. por -2 bytes!
Gracias Jo King por -8 bytes!
Explicación:
Pruébalo en línea!
fuente
Perl 6 , 32 bytes
Pruébalo en línea!
Bloqueo de código anónimo que simplemente exige que se cumplan todas las reglas.
Explicación:
fuente
K (oK) ,
3128 bytes-3 bytes gracias a ngn!
Pruébalo en línea!
fuente
+//
(suma hasta la convergencia) en lugar de+/+/
(suma suma)x^x^y
para encontrar la intersección entre dos listas:#x^x^,/!10
. esto se puede acortar a#x^x^/!10
(^
es "sin",x^/
... es^
-reducción con valor inicialx
)>
(o<
) se puede usar como "y no":{(x~|x)<(2<#x^x^/$!10)*9<#x}
JavaScript (Node.js) , 70 bytes
Pruébalo en línea!
Devuelve 1 para verdadero y 0 para falso
fuente
C # (compilador interactivo de Visual C #) , 67 bytes
Pruébalo en línea!
fuente
Pip , 19 bytes
Pruébalo en línea! (todos los casos de prueba)
Explicación
Con
a
ser el primer argumento de la línea de comandos:fuente
Stax , 14 bytes
Ejecutar y depurarlo
fuente
Pyth, 17 bytes
Pruébelo en línea aquí , o verifique todos los casos de prueba a la vez aquí .
fuente
Groovy, (47 bytes)
(La inclusión de bonificación se deja como ejercicio para el lector)
fuente