Al otro lado del alfabeto
En este desafío, tienes problemas para recordar las letras del alfabeto. Para evitar esto, sube y baja el alfabeto hasta llegar a la letra.
Debido a que desea que su código sea portátil, lo escribirá con bloques de letras. Tiene una cantidad limitada de bloques de letras porque la mayoría de ellos fueron robados, por lo que debe asegurarse de que su código sea lo más corto posible.
Ejemplos
Los pares de entrada / salida están separados por una línea en blanco:
Ac
ABc
Ad
ABcd
fA
fedCBA
adB
abcdcB
Hello, World!
HGfefghijkllmno, WVUTSrqpopqrqponmlkjihgfed!
Desafío
Su objetivo es encadenar letras adyacentes con todas las letras intermedias del alfabeto ( A-Za-z
) entre ellas. Si la capitalización difiere, la capitalización debe transformarse en el medio. Si la capitalización no se puede transformar uniformemente en el medio, se divide después del medio. Si un personaje no es alfabético, no se debe realizar ninguna transformación.
Victorioso
Este es el código de golf, ¡el código más corto en bytes gana!
-10% de bonificación: si su código encadena dígitos
adB
debería transformarse enabcdCB
porque c está en el medio de d y b?Respuestas:
Pyth, 40 bytes
Pruébalo en línea.
fuente
Python 2,
303291288282276261253 bytesEste es un algoritmo completamente diferente al de Hannes Karppila, y después de mucho golf, he logrado una mejora sustancial en la longitud. Creo que este algoritmo también podría permitir uno de los códigos más cortos en otros idiomas, especialmente los idiomas con bucles do-while y funciones de signum incorporadas. Sugerencias para más mejoras bienvenidas. (Algo me dice que todo el ciclo interno debe reescribirse como una lista de comprensión).
fuente
JavaScript (ES6),
198197194 bytesUso
Explicación
fuente
\w
fallará con los dígitos. Prueba '09'a>b?a-b:b-a
... y hay más otros trucos 'estándar' para acortar JavaScript. Con tu método de interpolación podrías superar mi puntaje. Consulte las sugerencias en este sitioJavaScript ES6, 168 (186-10%)
176 193Editar modificado para obtener el 10% de bonificación
Pruebe a ejecutar el fragmento a continuación utilizando un navegador compatible con EcmaScript 6 (uso FireFox)
fuente
Python 2, 349 bytes
Es demasiado largo, pero al menos es el primero.
fuente