Problema
Le records di C# confrontano per valore: due records sono uguali quando tutti i loro campi sono uguali, anche se sono oggetti diversi. Questo rende facile rimuovere i duplicati.
Ogni record è scritto name,city. Rimuovi gli spazi all'inizio e alla fine di entrambi i campi; dopo il trimming, due record sono uguali quando entrambi i campi corrispondono esattamente (la distinzione tra maiuscole e minuscole conta).
Implementa unique_records(records).
Input
records: I record, in ordine.
Output
Restituisci i record distinti nell'ordine in cui compaiono per la prima volta, scritti name,city con i campi ripuliti.
Vincoli
0 ≤ numero di record ≤ 100,000
Ogni campo ha da 1 a 30 caratteri e nessuna virgola
Esempi
Input:
records = ["Ada,London", "Lin, Hanoi", "Ada , London"]
Output atteso:
expected = ["Ada,London", "Lin,Hanoi"]
Input:
std::vector<std::string> records = {"Ada,London", "Lin, Hanoi", "Ada , London"};
Output atteso:
std::vector<std::string> expected = {"Ada,London", "Lin,Hanoi"};
Input:
string[] records = new string[] {"Ada,London", "Lin, Hanoi", "Ada , London"};
Output atteso:
string[] expected = new string[] {"Ada,London", "Lin,Hanoi"};
Spiegazione
Dopo il trimming, il terzo record è uguale al primo, quindi viene eliminato: ["Ada,London", "Lin,Hanoi"].
Input:
records = ["ada,Paris", "Ada,Paris"]
Output atteso:
expected = ["ada,Paris", "Ada,Paris"]
Input:
std::vector<std::string> records = {"ada,Paris", "Ada,Paris"};
Output atteso:
std::vector<std::string> expected = {"ada,Paris", "Ada,Paris"};
Input:
string[] records = new string[] {"ada,Paris", "Ada,Paris"};
Output atteso:
string[] expected = new string[] {"ada,Paris", "Ada,Paris"};
Spiegazione
La distinzione tra maiuscole e minuscole conta, quindi questi due record sono diversi: ["ada,Paris", "Ada,Paris"].
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Togli gli spazi da entrambi i campi prima di confrontare.
Suggerimento 2
Un set di coppie (name, city) ricorda i record già visti.
Suggerimento 3
Emetti ogni nuovo record la prima volta che compare, nell'ordine di input.
Complessità attesa
tempo O(lunghezza totale), spazio aggiuntivo O(numero di record)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.