El segundo partido provincial del análisis de palabras grupales de Python 11th Blue Bridge Cup

1. Descripción del problema:
Xiaolan está aprendiendo un idioma mágico. Las palabras en este idioma están compuestas de letras minúsculas en inglés. Algunas palabras son muy largas, excediendo con creces la longitud de las palabras normales en inglés. Xiaolan había estado aprendiendo durante mucho tiempo y no podía recordar algunas palabras. Planeaba no recordar estas palabras por completo, sino distinguir las palabras según la letra que apareciera más. Ahora, por favor ayude a Xiaolan. Después de dar una palabra, ayúdelo a encontrar la letra más frecuente y el número de veces que aparece esta letra.
[Formato de entrada] La 
línea de entrada contiene una palabra y la palabra solo se compone de letras minúsculas en inglés.
[Formato de salida] Salida de dos líneas, la primera línea contiene una letra en inglés, que indica qué letra aparece con más frecuencia en la palabra. Si hay varias letras que aparecen el mismo número de veces, se emite la que tiene el orden lexicográfico más pequeño. La segunda línea contiene un número entero que representa el número de veces que aparece la letra más frecuente en la palabra.
[Entrada de muestra] lanqiao
[Salida de muestra]
a
2
[Entrada de muestra] longlonglongistoolong
[Salida de muestra]
o
6
[Escala de casos de uso de evaluación y convenciones] Para todos los casos de uso de evaluación, la longitud de la palabra de entrada no debe exceder 1000.

2. Análisis de pensamiento:

Analizando la pregunta, podemos saber que contamos los caracteres que aparecen cuando atravesamos la cadena. Para el lenguaje Python, podemos usar el diccionario para contar. Puedes usar el método collections.defaultdict (int) para definir el valor del diccionario como un tipo int. Diccionario, deque, tupla, etc.), de modo que si la clave no existe al contar, se inicializará automáticamente a 0. Una vez finalizado el recuento, el diccionario se ordenará según el valor de de grande a pequeño, y la salida final se ordena. La primera clave y el valor de

3. El código es el siguiente:

import collections

if __name__ == '__main__':
    # 很明显使用python中的字典对其进行计数即可, 使用defaultdict(int)方法当键不存在的时候那么会自动初始化为0
    dic = collections.defaultdict(int)
    s = input()
    for c in s:
        dic[c] += 1
    # 使用lambda表达式对字典进行排序, x[1]表示按照值进行排序, reverse表示从大到小排序
    dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)
    print(dic[0][0])
    print(dic[0][1])

 

Supongo que te gusta

Origin blog.csdn.net/qq_39445165/article/details/114979334
Recomendado
Clasificación