J'ai récemment décidé de télécharger un logiciel de dictée afin de m'aider à écrire. Cependant, cela ne fonctionne pas très bien lorsque je code, car je dois changer de dire des mots en symboles et inversement. C'est encore pire quand je code dans un langage ésotérique qui est tous des symboles.
Afin de rendre mon utilisation du programme de dictée plus cohérente, j'ai décidé de le passer en mode caractère, où je dis simplement le nom de chaque personnage à la place. Problème résolu! Bien que cela retarde un peu la date de sortie de mon roman ...
Donc, en supposant que plus le nom d'un personnage est long, plus il faut de temps pour le dire, combien de temps me faudra-t-il pour épeler certains de mes programmes / phrases?
Caractéristiques
Étant donné une chaîne composée uniquement d'ASCII imprimable, renvoyez la somme du nom unicode de chaque caractère. Par exemple, /
est appelé SOLIDUS
avec 7 caractères, et A
est LATIN CAPITAL LETTER A
avec 22 caractères.
Mais rappelez-vous, je dois dire vos programmes à haute voix pour les exécuter, donc leur score sera basé sur le temps qu'il me faut pour les dire, c'est-à-dire comme la somme des longueurs du nom unicode de chaque personnage.
Cas de test:
Au format input => output
sans espaces de fin / de début en entrée.
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
Règles:
- L'entrée dans votre programme se composera uniquement de caractères ASCII imprimables, c'est-à-dire les points de code 32 (espace) à 126 (tilde).
- Par souci de commodité, voici la liste des longueurs des caractères que vous devez gérer:
[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]
- Par souci de commodité, voici la liste des longueurs des caractères que vous devez gérer:
- Voici un programme de référence que vous pouvez utiliser pour noter votre programme.
- Peter Taylor a souligné que le programme de référence normalise certains caractères unicode . Cela devrait toujours fonctionner pour la plupart des solutions, mais n'hésitez pas à le corriger si vous en avez besoin
- Puisque vous dites à quoi ressemblent réellement les caractères, votre solution sera évaluée par les caractères affichés, et non par les octets impliqués. Cela concerne les langues avec des encodages personnalisés.
- Vous pouvez supposer que j'ai mémorisé toute la bibliothèque Unicode et pouvez dire tous les caractères étranges que vous utilisez.
- Désolé Rogem, mais les réponses doivent être composées de caractères affichables. Les non imprimables sont bien, je dois juste pouvoir lire les caractères à haute voix.
- Quoi que vous fassiez, ne l'utilisez pas
ﯹ
dans votre programme.
la source
ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
ce sera le nom complet de mon enfant\x[2126]
est compté comme\x[3a9]
.Réponses:
Java 8, score
846838822816-8 score grâce au remplacement de @tsh
_1
parꀊ
.-22 score grâce à @ ASCII uniquement en remplaçant le
ꀊ
avecˇ
et$
avecௐ
.Essayez-le en ligne.
Explication:
Le
ௐ
etˇ
sont utilisés à la place dus
etc
j'utiliserais normalement, car les lettres minuscules sont toutes 20 (ieLATIN SMALL LETTER S
), maisௐ
(TAMIL OM
) est 8 etˇ
(CARON
) est 5.la source
push compressed integer 87235805968599116032550323044578484972930006625267106917841
: Pꀊ
au lieu de_1
sauverait quelques points.Ω
(OHM SIGN
) comporte 8 caractères. Aussi haha, je ne savais pas que ce n'était pas valide, supposé juste car il est valide en C # et Peter utilisé_1
aussi ( programme pour trouver des noms de variables courts , le caractère de la boîte ne peut pas être utilisé)Perl 6 , score 337
Essayez-le en ligne!
la source
.&[~]
lieu de cela,.join
c'est une astuce intéressante. Je ne me souviens jamais quels opérateurs de réduction peuvent être appliqués par cette méthodeJapt v2.0a1
-x
, Score926908875865829791789Prend l'entrée comme un tableau de caractères.
Essayez-le ou exécutez tous les cas de test sur TIO
(
APOSTROPHE
est omis du 6ème cas de test sur TIO car Japt ne peut pas gérer les guillemets simples et doubles dans la même chaîne d'entrée)Explication
Construire la chaîne
(Les scores incluent les étapes et les caractères supplémentaires nécessaires pour annuler chaque modification)
>=23
et le joindre à une chaîne notée 1832 .m
etk
par un seul caractère majuscule a marqué 963 .5
était le personnage avec le point de code le plus bas (53
) donc j'ai commencé avec 52, qui ont marqué 75651
donné le meilleur score de 738La chaîne finale contient donc les caractères aux points de code suivants:
la source
05AB1E , score 963
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Voir cette astuce de mes 05AB1E (sections Comment compresser les grands entiers? Et comment les listes entières Compresser? ) Pour comprendre pourquoi
•Fδà‚<0?9½mΣ@×ƶC₁vc-™uΔ_ε'•21в
est[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]
.la source
C # (Visual C # Interactive Compiler) (score
1627 1116 1096 1037 1019902)Cela n'utilise pas de base de données intégrée: juste un boîtier spécial pour les lettres et une table de recherche.
Suite de tests en ligne .
Il ne peut pas se marquer, parce que la plupart des personnages ne sont pas dans la gamme, y compris les variables
CARON
etOHM SIGN
et les symboles du zodiaque utilisés pour coder la table de consultation.Merci à ASCII uniquement pour de nombreuses suggestions.
la source
R; Résultat:
333015861443Également difficile en R en raison du manque de fonctions intégrées.
Eh bien, le code est maintenant principalement de @ Giuseppe, mais ça va. J'ai pu apporter une petite modification au golf en remplaçant le * par le ~ et le s par le point.
Merci à @Nick Kennedy d'avoir réduit cela à 1443 en utilisant
la magie des arcanes"une version encodée en UTF8 de la séquence de nombres"Essayez-le en ligne
la source
utf8ToInt
est une commande super utile pour jouer au golf :-) Je n'ai pas été sur PPCG depuis un mois environ, donc c'est agréable de voir de nouvelles personnes jouer au golf dans R!Python 3 , score de 993
Essayez-le en ligne!
En dessous de 1000 maintenant, tous les conseils sont toujours appréciés.
-16 grâce à Kirill L.
la source
_
parˇ
pour 987.Perl 5
-pl
, score 723Essayez-le en ligne!
Explication
la source
Attaché , 1934
Essayez-le en ligne!
Compression et indexation simples.
la source
C # (Visual C # Interactive Compiler) , Score:
40073988375935512551Je me sens écrasé par la solution de Peter Taylor au-dessus. Merci à Peter Taylor d'avoir souligné qu'une table de recherche simple était meilleure que ma solution de dictionnaire précédente.
Essayez-le en ligne!
la source
_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()
note 2786.