En http://shakespeare.mit.edu/ puede encontrar el texto completo de cada una de las obras de Shakespeare en una página (por ejemplo, Hamlet ).
Escriba un script que tome la url de una obra de stdin, como http://shakespeare.mit.edu/hamlet/full.html , y muestre la cantidad de caracteres de texto con los que cada personaje de la obra habló stdout, ordenados según quién habló más.
Los títulos de obra / escena / acto obviamente no cuentan como diálogo, ni los nombres de los personajes. El texto en cursiva y el [texto entre corchetes] no son diálogos reales, no deben contarse. Se deben contar los espacios y otros signos de puntuación dentro del diálogo.
(El formato de las obras parece muy consistente, aunque no las he mirado todas. Dime si he pasado por alto algo. Tu guión no tiene que funcionar para los poemas).
Ejemplo
Aquí hay una sección simulada de Much Ado About Nothing para mostrar lo que espero para la salida:
Más ruido sobre nada
Escena 0.
Mensajero
Voy a.
BEATRICE
Hacer.
LEONATO
Usted nunca.
BEATRICE
No.
Rendimiento esperado:
LEONATO 15
Messenger 7
BEATRICE 6
Puntuación
Este es el código de golf. El programa más pequeño en bytes ganará.
Respuestas:
PHP (240 caracteres)
Divide el html en cadenas (usando como delimitador), luego ejecuta un par de expresiones regulares para extraer el nombre y las palabras pronunciadas. Guarda la longitud de las palabras pronunciadas en una matriz. Golfizado:
Sin golf:
Nota: Esto considera que 'Todos' es un personaje separado.
Ejemplo:
fuente
Rebol -
556527Es probable que esto se pueda jugar aún más, sin embargo, es poco probable que se encuentre por debajo de las respuestas ya proporcionadas :(
Sin golf:
Este programa elimina [el texto entre corchetes] y también recorta el espacio en blanco que rodea el diálogo. Sin esto, la salida es idéntica a la respuesta es1024 .
Ejemplo:
fuente
Lisp común - 528
Explicación
Esta es una versión ligeramente modificada que agrega información de impresión (ver pegar).
Notas
Elimino el texto entre corchetes, así como la aparición "a un lado:" que no está presente entre paréntesis (también recorto los espacios en blanco). Aquí hay un rastro de ejecución con el texto que coincide y el total de cada personaje, para Hamlet .
Como otras respuestas, Todo se supone que es un personaje. Podría ser tentador agregar el valor de todos a todos los demás personajes, pero esto sería incorrecto ya que "Todos" se refiere a los personajes realmente presentes en el escenario, lo que requiere mantener un contexto de quién está presente (seguimiento de "salida" "exeunt "y" ingresar "indicaciones). Ésto no está hecho.
fuente