Guide for Passant llista


Això és una guia per ajudar-te a començar amb aquest problema — no és la solució.
Mostra el codi per a: Consideracions generals Java 11 Python 3

Com abordar aquest problema

Se't dona una llista de "Nom Cognom", un per línia, i has d'imprimir-los ordenats pel cognom (i \ pel nom si hi ha empat de cognom). A l'hora d'imprimir cada persona, només cal afegir el cognom si \ el seu nom de pila no és únic dins de tota la classe; si el nom ja identifica clarament a la \ persona, n'hi ha prou amb el nom.

Idea general:

  1. Llegeix totes les línies de l'entrada (fins que s'acabi), separant cada una en nom i cognom, i \ guarda-les totes en una llista.
  2. Fes servir una estructura de tipus taula de hash (un diccionari / HashMap) per comptar quantes \ vegades apareix cada nom de pila dins de tota la llista.
  3. Ordena la llista de persones per cognom, i quan coincideixi el cognom, per nom.
  4. Recorre la llista ja ordenada: per cada persona, si el comptador del seu nom és més gran que 1, \ imprimeix "Nom Cognom"; si és 1, imprimeix només el "Nom".

Paranys habituals:

  • Cal fer el recompte de noms sobre tota la llista abans de decidir què s'imprimeix per a cada \ persona (no es pot decidir mirant-ne només una part).
  • L'ordenació és pel cognom; el nom només es fa servir per desempatar quan dos cognoms coincideixen.
  • L'entrada pot tenir fins a 200 línies i no se't diu explícitament quantes seran: llegeix fins que \ s'acabi l'entrada.

Tornar al problema