Unter http://shakespeare.mit.edu/ finden Sie den vollständigen Text aller Stücke von Shakespeare auf einer Seite (z . B. Hamlet ).
Schreiben Sie ein Skript, das die URL eines Spiels von stdin aufnimmt, wie z. B. http://shakespeare.mit.edu/hamlet/full.html , und gibt die Anzahl der Textzeichen aus, die jedes Spielzeichen mit stdout gesprochen hat, sortiert nach wem sprach am meisten.
Die Spiel- / Szenen- / Act-Titel zählen offensichtlich nicht als Dialog, ebenso wenig wie die Charakternamen. Kursiver Text und [ Text in eckigen Klammern] sind keine eigentlichen Dialoge, sie sollten nicht gezählt werden. Leerzeichen und andere Satzzeichen im Dialog sollten gezählt werden.
(Das Format für die Stücke sieht sehr konsistent aus, obwohl ich nicht alle angeschaut habe. Sagen Sie mir, ob ich etwas übersehen habe. Ihr Skript muss für die Gedichte nicht funktionieren.)
Beispiel
Hier ist ein simulierter Abschnitt aus Viel Lärm um nichts , der zeigt, was ich für die Ausgabe erwarte:
Mehr Lärm um nichts
Szene 0.
Bote
Ich werde.
BEATRICE
Tun.
LEONATO
Du wirst nie.
BEATRICE
Nein.
Erwartete Ausgabe:
LEONATO 15
Messenger 7
BEATRICE 6
Wertung
Das ist Code Golf. Das kleinste Programm in Bytes gewinnt.
Antworten:
PHP (240 Zeichen)
Unterteilt das HTML in Zeichenfolgen (als Begrenzungszeichen) und führt dann einige reguläre Ausdrücke aus, um den Namen und die gesprochenen Wörter zu extrahieren. Speichert die Länge der im Array gesprochenen Wörter. Golf gespielt:
Ungolfed:
Hinweis: Dies betrachtet "Alle" als ein separates Zeichen.
Beispiel:
quelle
Rebol -
556527Dies könnte wahrscheinlich weiter golfen werden, es ist jedoch unwahrscheinlich, dass die bereits gelieferten Antworten unterschritten werden :(
Ungolfed:
Dieses Programm entfernt [Text in eckigen Klammern] und schneidet auch umgebende Leerzeichen aus dem Dialogfeld. Ohne dies ist die Ausgabe identisch mit es1024 answer.
Beispiel:
quelle
Common Lisp - 528
Erläuterung
Dies ist eine leicht modifizierte Version, die Druckinformationen hinzufügt (siehe Einfügen).
Anmerkungen
Ich entferne Text in eckigen Klammern sowie das "aside:" - Vorkommen, das nicht in eckigen Klammern steht (ich schneide auch Leerzeichen ab). Hier ist eine Ausführungsspur mit dem Text, der abgeglichen wird, und der Summe für jedes Zeichen für Hamlet .
Als andere Antwort wird angenommen, dass All ein Charakter ist. Es könnte verlockend sein, den Wert aller zu allen anderen Zeichen hinzuzufügen, aber dies wäre falsch, da "Alle" sich auf die tatsächlich auf der Bühne vorhandenen Zeichen bezieht, was erfordert, dass der Kontext der anwesenden Personen eingehalten wird (Verfolgung von "exit" -Exeunt "und" enter "). Das ist nicht fertig.
quelle