Recientemente decidí descargar un software de dictado, para ayudar con mi escritura. Sin embargo, no funciona muy bien cuando estoy codificando, ya que tengo que cambiar de decir palabras a símbolos y viceversa. Es aún peor cuando estoy codificando en un lenguaje esotérico que son todos símbolos.
Para que mi uso del programa de dictado sea más coherente, decidí cambiarlo al modo de caracteres, donde solo digo el nombre de cada personaje. ¡Problema resuelto! Aunque esto retrasa un poco la fecha de lanzamiento de mi novela ...
Entonces, suponiendo que cuanto más largo sea el nombre de un personaje, más tiempo tomará decir, ¿cuánto tiempo me tomará deletrear algunos de mis programas / oraciones?
Presupuesto
Dada una cadena que consiste solo en ASCII imprimible, devuelve la suma del nombre unicode de cada carácter. Por ejemplo, /
se llama SOLIDUS
con 7 caracteres y A
tiene LATIN CAPITAL LETTER A
22 caracteres.
Pero recuerde, tengo que decir sus programas en voz alta para ejecutarlos, por lo que su puntaje se basará en cuánto tiempo me tome decirlos, es decir, como la suma de las longitudes del nombre unicode de cada personaje.
Casos de prueba:
En formato input => output
sin espacios finales / iniciales en la entrada.
A => 22
/ => 7
Once upon a time... => 304
slurp.uninames>>.comb.sum.say => 530
JoKing => 124
!" #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ => 1591
Double-check your \s on the last test case ;) => 755
<say "<$_>~~.EVAL">~~.EVAL => 388
,[.,] => 58
19 => 19
Reglas:
- La entrada a su programa solo consistirá en caracteres ASCII imprimibles, es decir, los puntos de código 32 (espacio) a 126 (tilde).
- Por conveniencia, aquí está la lista de longitudes de los caracteres que debe manejar:
[5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,15,20,17,8,12,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,18,13,19,5]
- Por conveniencia, aquí está la lista de longitudes de los caracteres que debe manejar:
- Aquí hay un programa de referencia que puede usar para calificar su programa.
- Peter Taylor ha señalado que el programa de referencia normaliza algunos caracteres unicode . Todavía debería funcionar para la mayoría de las soluciones, pero siéntase libre de corregirlo si lo necesita
- Como está diciendo cómo son realmente los caracteres, su solución será puntuada por los caracteres que se muestran, no por los bytes involucrados. Esto está dirigido a idiomas con codificaciones personalizadas.
- Puede suponer que he memorizado toda la biblioteca Unicode y puedo decir cualquier personaje extraño que use.
- Lo siento, Rogem, pero las respuestas deben estar compuestas de caracteres que se puedan mostrar. Los no imprimibles están bien, solo tengo que poder leer los caracteres en voz alta.
- Hagas lo que hagas, no lo uses
ﯹ
en tu programa.
fuente
ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
este será el nombre completo de mi hijo\x[2126]
se cuenta como\x[3a9]
.Respuestas:
Java 8, puntaje
846838822816-8 puntos gracias a @tsh reemplazando el
_1
conꀊ
.-22 puntaje gracias a @ ASCII solo reemplazando el
ꀊ
conˇ
y$
conௐ
.Pruébalo en línea.
Explicación:
El
ௐ
yˇ
se usan en lugar dels
yc
que normalmente usaría, porque las letras minúsculas son todas 20 (es decirLATIN SMALL LETTER S
), peroௐ
(TAMIL OM
) es 8 yˇ
(CARON
) es 5.fuente
push compressed integer 87235805968599116032550323044578484972930006625267106917841
: Pꀊ
lugar de_1
ahorraría algunos puntos.Ω
(OHM SIGN
) tiene 8 caracteres de longitud. También, jaja, no sabía que no era válido, solo asumí que es válido en C # y Peter_1
también lo usó ( programa para encontrar nombres de variables cortos , el carácter de cuadro no se puede usar)Perl 6 , puntaje 337
Pruébalo en línea!
fuente
.&[~]
lugar de.join
es un buen truco. Nunca recuerdo qué operadores de reducción se pueden aplicar a través de ese métodoJapt v2.0a1
-x
, Score926908875865829791789Toma la entrada como una matriz de caracteres.
Pruébelo o ejecute todos los casos de prueba en TIO
(
APOSTROPHE
se omite del sexto caso de prueba en TIO ya que Japt no puede manejar tanto comillas simples como dobles en la misma cadena de entrada)Explicación
Construyendo la cadena
(Las puntuaciones incluyen los pasos y los caracteres adicionales necesarios para revertir cada modificación)
>=23
y uniéndolos a una cadena obtuvo 1832 .m
yk
con un solo carácter en mayúscula obtuvo 963 .5
era el personaje con el punto de código más bajo (53
), así que comencé con 52, que obtuvo 75651
dio la mejor puntuación de 738La cadena final, por lo tanto, contiene los caracteres en los siguientes puntos de código:
fuente
05AB1E , puntaje 963
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
Ver este consejo 05AB1E mío (secciones Cómo comprimir grandes números enteros? Y ¿Cómo listas de números enteros comprimir? ) Para entender por qué
•Fδà‚<0?9½mΣ@×ƶC₁vc-™uΔ_ε'•21в
es[5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,0,19,15,20,17,8,12,2,18,13,19,5]
.fuente
C # (compilador interactivo de Visual C #) (puntaje
1627 1116 1096 1037 1019902)Esto no utiliza una base de datos incorporada: solo algunas carcasas especiales para letras y una tabla de búsqueda.
Conjunto de pruebas en línea .
No se puede marcar en sí, porque la mayoría de los personajes no están dentro del alcance, incluyendo las variables
CARON
yOHM SIGN
y los símbolos del zodiaco utilizados para codificar la tabla de búsqueda.Gracias a ASCII-only por muchas sugerencias.
fuente
R; Puntuación:
333015861443También desafiante en R debido a la falta de elementos integrados.
Bueno, el código ahora es principalmente de @ Giuseppe, pero está bien. Pude hacer una pequeña edición para golf aún más al reemplazar el * con el ~, y el s con el punto.
Gracias a @Nick Kennedy por bajar esto a 1443 usando
magia arcana"una versión codificada en UTF8 de la secuencia numérica"Pruébalo en línea
fuente
utf8ToInt
es un comando súper útil para jugar golf :-) No he estado en PPCG durante un mes más o menos, ¡así que es agradable ver a gente nueva jugando al golf en R!Python 3 , puntuación de 993
Pruébalo en línea!
Por debajo de 1000 ahora, cualquier consejo aún apreciado.
-16 gracias a Kirill L.
fuente
_
porˇ
987.Perl 5
-pl
, puntaje 723Pruébalo en línea!
Explicación
fuente
Agregado , 1934
Pruébalo en línea!
Compresión simple e indexación.
fuente
C # (compilador interactivo de Visual C #) , puntaje:
40073988375935512551Me siento aplastado por la solución de Peter Taylor arriba. Gracias a Peter Taylor por señalar que una tabla de búsqueda simple era mejor que mi solución de diccionario anterior.
Pruébalo en línea!
fuente
_1=>_1.Select(_2=>new int[]{5,16,14,11,11,12,9,10,16,17,8,9,5,12,9,7,10,9,9,11,10,10,9,11,11,10,5,9,14,11,17,13,13,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,15,20,17,8,12,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,18,13,19,5}[_2-32]).Sum()
puntajes 2786.