Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Urgente! Una pregunta de programación de Python de IOI, preferiblemente incluyendo algoritmo e implementación ~~~

¡Urgente! Una pregunta de programación de Python de IOI, preferiblemente incluyendo algoritmo e implementación ~~~

La redacción anterior es buena, especialmente el intercambio de s y c, que es muy inteligente. Aquí discutiré la situación en la que hay múltiples valores máximos, como top_country([('C', 'Gold'), ('A', 'Gold'), ('A', 'Silver'), (' B ', 'Bronce'), ('C', 'Plata')]), donde C y A son iguales. Si es correcto, se deben generar C y A. El código es el siguiente:

def top_country(m):

puntuación = {}

medalla_score = {'Oro': 3, 'Plata': 2, 'Bronce': 1}

para el país, medalla en m:

puntuación[país] = puntuación[país] medalla_puntuación[medalla] si el país está en la puntuación, sino medalla_puntuación[medalla] ]

max_medal = max((s, c) para c, s en score.items())

print max_medal[1],

puntuación. pop(max_medal [1])

para c, s en score.items():

Si s == max_medal[0]:

imprime c ,

p>

top_country([('C', 'Oro'), ('A', 'Bronce'), ('C', 'Plata')])

top_country([( 'C', 'Oro'), ('A', 'Oro'), ('A', 'Plata'), ('D', 'Oro'), ('D', ' Plata'), ( 'B', 'Bronce'), ('C', 'Plata')])

El resultado de salida es:

C

D A C

PD: 1. La respuesta anterior ya es correcta, porque la pregunta supone que hay una respuesta única, es decir, considerando solo la situación en la que el resultado tiene un solo valor, simplemente expandí Aquí se debe considerar el valor máximo múltiple.

2. Debido a que esto no es lo suficientemente ancho, la quinta y última línea de código son demasiado largas para caber, por lo que se ajustan automáticamente. Se recomienda copiarlas a su propio IDE para verlas. Es más intuitivo.