Ich habe vor kurzem beschlossen, eine Diktiersoftware herunterzuladen, um beim Schreiben zu helfen. Es funktioniert jedoch nicht sehr gut, wenn ich codiere, da ich vom Sprechen von Wörtern zu Symbolen und wieder zurück wechseln muss. Es ist noch schlimmer , wenn ich in einer esoterischen Sprache bin Codierung , die ist alle Symbole.
Um das Diktierprogramm konsistenter zu nutzen, habe ich beschlossen, es auf den Zeichenmodus umzustellen, in dem ich stattdessen nur den Namen der einzelnen Zeichen sage. Problem gelöst! Obwohl dies das Erscheinungsdatum meines Romans ein wenig verzögert ...
Angenommen also, je länger der Name eines Charakters ist, desto länger dauert es, zu sagen, wie lange ich brauche, um einige meiner Programme / Sätze zu buchstabieren?
Spezifikationen
Geben Sie bei einer Zeichenfolge, die nur aus druckbarem ASCII besteht, die Summe der Unicode-Namen der einzelnen Zeichen zurück. Zum Beispiel /
heißt SOLIDUS
mit 7 Zeichen und A
ist LATIN CAPITAL LETTER A
mit 22 Zeichen.
Denken Sie jedoch daran, dass ich Ihre Programme laut aussprechen muss, um sie auszuführen, damit ihre Bewertung davon abhängt, wie lange ich brauche, um sie auszusprechen, dh als Summe der Längen des Unicode-Namens der einzelnen Charaktere.
Testfälle:
Im Format input => output
ohne nachgestellte / führende Leerzeichen in der Eingabe.
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
Regeln:
- Die Eingabe in Ihr Programm besteht nur aus druckbaren ASCII-Zeichen, dh den Codepunkten 32 (Leerzeichen) bis 126 (Tilde).
- Der Einfachheit halber ist hier die Liste der Längen der Zeichen, mit denen Sie umgehen müssen:
[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]
- Der Einfachheit halber ist hier die Liste der Längen der Zeichen, mit denen Sie umgehen müssen:
- Hier ist ein Referenzprogramm, mit dem Sie Ihr Programm bewerten können.
- Peter Taylor hat darauf hingewiesen, dass das Referenzprogramm einige Unicode-Zeichen normalisiert . Es sollte immer noch für die meisten Lösungen funktionieren, aber Sie können es jederzeit korrigieren, wenn Sie es benötigen
- Da Sie sagen, wie die Zeichen tatsächlich aussehen, wird Ihre Lösung anhand der angezeigten Zeichen und nicht anhand der beteiligten Bytes bewertet. Dies richtet sich an Sprachen mit benutzerdefinierten Codierungen.
- Sie können davon ausgehen, dass ich die gesamte Unicode-Bibliothek auswendig gelernt habe und alle seltsamen Zeichen, die Sie verwenden, aussprechen kann.
- Sorry Rogem, aber die Antworten müssen aus darstellbaren Zeichen bestehen. Unprintables sind in Ordnung, ich muss nur in der Lage sein, die Zeichen laut vorzulesen.
- Was auch immer Sie tun, verwenden Sie es nicht
ﯹ
in Ihrem Programm.
quelle
ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
Dies wird der vollständige Name meines Kindes sein\x[2126]
gilt als\x[3a9]
.Antworten:
Java 8, Score
846838822816-8 Punkte dank @tsh anstelle von
_1
mitꀊ
.-22 Punkte dank @ ASCII- Ersetzen von
ꀊ
mitˇ
und$
mitௐ
.Probieren Sie es online aus.
Erläuterung:
Das
ௐ
undˇ
wird anstelle dess
und verwendet, wasc
ich normalerweise verwenden würde, da Kleinbuchstaben alle 20 sind (dhLATIN SMALL LETTER S
), aberௐ
(TAMIL OM
) ist 8 undˇ
(CARON
) ist 5.quelle
push compressed integer 87235805968599116032550323044578484972930006625267106917841
: Pꀊ
statt_1
würde einige Punkte sparen.Ω
(OHM SIGN
) ist 8 Zeichen lang. Haha, mir war auch nicht bewusst, dass es nicht gültig war, nur angenommen, da es in C # gültig ist und Peter es auch verwendete_1
( Programm, um kurze Variablennamen zu finden , das Box-Zeichen kann nicht verwendet werden)Perl 6 , Punktzahl 337
Probieren Sie es online!
quelle
.&[~]
stattdessen.join
ein ordentlicher Trick. Ich kann mich nie erinnern, welche Reduktionsoperatoren durch diese Methode angewendet werden könnenJapt v2.0a1
-x
, Score926908875865829791789Nimmt die Eingabe als Array von Zeichen.
Probieren Sie es aus oder führen Sie alle Testfälle unter TIO aus
(
APOSTROPHE
wird im 6. Testfall von TIO weggelassen, da Japt nicht sowohl einfache als auch doppelte Anführungszeichen in derselben Eingabezeichenfolge verarbeiten kann.)Erläuterung
Die Zeichenfolge erstellen
(Die Bewertungen enthalten die Schritte und zusätzlichen Zeichen, die zum Umkehren jeder Änderung erforderlich sind.)
>=23
und das Verbinden zu einer Zeichenfolge erzielte 1832 .m
undk
durch einen einzelnen Großbuchstaben ergab 963 .5
war der Charakter mit dem niedrigsten Codepunkt (53
), also habe ich mit 52 angefangen, was 756 Punkte ergab51
die beste Punktzahl von 738 erzieltDie letzte Zeichenfolge enthält also die Zeichen an den folgenden Codepunkten:
quelle
05AB1E , Score 963
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
Sehen Sie diese 05AB1E Spitze von mir (Abschnitte Wie große natürliche Zahlen zu komprimieren? Und Wie zu komprimieren integer Listen? ) Zu verstehen , warum
•Fδà‚<0?9½mΣ@×ƶC₁vc-™uΔ_ε'•21в
ist[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]
.quelle
C # (Visual C # Interactive Compiler) (Ergebnis
1627 1116 1096 1037 1019902)Hierbei wird keine integrierte Datenbank verwendet, sondern nur eine spezielle Groß- und Kleinschreibung für Buchstaben und eine Nachschlagetabelle.
Online-Testsuite .
Es kann sich nicht selbst bewerten, da die meisten Zeichen nicht in Reichweite sind, einschließlich der Variablen
CARON
undOHM SIGN
und der Zodiaksymbole, die zum Codieren der Nachschlagetabelle verwendet werden.Dank nur ASCII für viele Vorschläge.
quelle
R; Ergebnis:
333015861443Auch in R wegen fehlender Einbauten eine Herausforderung.
Nun, der Code ist jetzt größtenteils @ Giuseppe, aber das ist in Ordnung. Ich konnte eine kleine Änderung vornehmen, um weiter Golf zu spielen, indem ich das * durch das ~ und das s durch den Punkt ersetzte.
Vielen Dank an @Nick Kennedy, der dafür gesorgt hat, dass er mithilfe von
Arcane Magic"eine UTF8-codierte Version der Zahlenfolge" auf 1443 gebracht hat.Probieren Sie es online aus
quelle
utf8ToInt
ein super hilfreich Befehl für den Golfsport ist :-) Ich habe auf PPCG einen Monat lang nicht oder so, so schön es ist , neue Leute in R Golf spielen zu sehen!Python 3 , Score von 993
Probieren Sie es online!
Unter 1000 jetzt noch alle Tipps geschätzt.
-16 danke an Kirill L.
quelle
_
durchˇ
für 987 ersetzen .Perl 5
-pl
, Punktzahl 723Probieren Sie es online!
Erläuterung
quelle
Attache , 1934
Probieren Sie es online!
Einfache Komprimierung und Indizierung.
quelle
C # (Visual C # Interactive Compiler) , Partitur:
40073988375935512551Ich fühle mich von Peter Taylors Lösung oben niedergeschlagen. Dank an Peter Taylor für den Hinweis auf eine einfache Nachschlagetabelle war besser als meine vorherige Wörterbuchlösung.
Probieren Sie es online!
quelle
_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()
Punktzahl 2786.