Puntuar texto

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.

Información del problema

Autoría: Juan Morales García

Generación: 2026-01-25T18:36:46.909Z

© Jutge.org, 2006–2026.
https://jutge.org
