Puntuar texto W11276


Statement
 

pdf   zip

thehtml

Escribe una función llamada puntuartexto. Dicha función recibirá dos parámetros: una cadena de caracteres y un diccionario cuyas claves serán cadenas de caracteres y cuyos valores serán números enteros. La función deberá devolver un número entero.

La cadena de caracteres recibida como parámetro será una oración en castellano, en la cual los signos de puntuación estarán separados de las palabras por espacios en blanco. Por ejemplo: Un estudio con datos desde 1964 publicado en la revista científica PNAS muestra cómo en la mayor parte del continente , las poblaciones de paquidermos han encogido , sobreviviendo solo en las áreas protegidas ..

Las claves del diccionario serán palabras (que pueden o no aparecer en el texto) y, para cada palabra, habrá una puntuación asociada como valor. La función deberá devolver la suma de las puntuaciones de todas las palabras del texto que aparecen en el diccionario. Si una palabra con puntuación asociada en el diccionario aparece varias veces en el texto, su valor deberá sumarse varias veces. No es necesario realizar ningún procesamiento especial de mayúsculas o acentos. Por ejemplo, si una palabra aparece en mayúsculas en el texto y en minúsculas en el diccionario, consideraremos que son palabras diferentes y no habrá que sumar su puntuación.

Para identificar palabras, simplemente habrá que trocear la cadena utilizando como separador el espacio en blanco. Después, es necesario iterar sobre esas palabras y, por cada palabra que aparece en el diccionario, sumar su puntuación a la puntuación final que debe devolver la función.

Por ejemplo, para la cadena de entrada mencionada anteriormente y el diccionario {@"en": 2 , "paquidermos": 20 , "un": 200 @}, la función deberá devolver 26.

Para que tu función pueda ser evaluada correctamente por el juez en línea, tu código deberá tener la siguiente forma:

import sys def puntuartexto(cad,dic): ... c=sys.stdin.readline().strip() d=eval(sys.stdin.readline().strip()) resultado=puntuartexto(c,d) print(resultado)

Entrada

(Si utilizas el fragmento de código definido más arriba, no debes preocuparte por esto) Dos líneas: la primera contendrá la oración de entrada, la segunda contendrá el diccionario escrito en una sola línea como si se tratara de código fuente Python.

Salida

(Si utilizas el fragmento de código definido más arriba, no debes preocuparte por esto) La puntuación asignada a la oración.

Information
Author
Juan Morales García
Language
Spanish
Official solutions
Python
User solutions