https://programmers.co.kr/learn/courses/30/lessons/42577
Soluzione
Era classificato come problema hash, ma l’ho risolto con ordinamento e confronto degli indici. Dato che n non e’ particolarmente piccolo, un confronto brute-force di tutte le coppie non e’ praticabile.
- Ordinare la lista della rubrica.
- Confrontare il numero di telefono i-esimo e (i+1)-esimo. Assumendo che i sia il potenziale prefisso, verificare la parte iniziale di i+1.
- Se corrispondono, impostare answer=False.
Due approcci per il punto 2:
# 1. Confronto diretto del prefisso tramite indicizzazioneif phone_book[i + 1][:len(phone_book[i])] == phone_book[i]
# 2. Usando startswithif phone_book[i + 1].startswith(phone_book[i])Codice
https://github.com/naem1023/codingTest/blob/master/pg-30-42577.py