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 (cualquierancharo 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.>2APL + 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),0si no es correcto (cero, falsedad),1si 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
1para la verdad y0para 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⊥∊∘⎕Dsi necesita una explicación de estos pasos.Perl 5
-p, 33 bytesTIO
fuente
Limpio , 66 bytes
Pruébalo en línea!
s<>reverse s:sno es un palíndromos%%(0,8)<s: los primeros 9 caracteres desson menos que todosssum[1\\c<-s|isDigit c]>2:stiene 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^ypara 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
aser 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