Problema
Il pattern singleton garantisce che una classe abbia esattamente una istanza condivisa da tutti, una scelta comune per le impostazioni dell'applicazione.
Simula una configurazione condivisa che inizia vuota. Elabora le operazioni in ordine:
set <key> <value>: memorizza il valore per la chiave (sostituendo qualsiasi vecchio valore).get <key>: legge il valore attuale della chiave, oppuremissingse non è mai stata impostata.
Poiché ogni chiamante usa la stessa istanza, un valore impostato da un'operazione è visibile a ogni get successivo.
Implementa shared_configuration(operations).
Ingresso
operations: Stringhe nelle due forme sopra. Chiavi e valori non contengono spazi.
Uscita
Restituisci i risultati delle operazioni get, in ordine.
Vincoli
1 ≤ numero di operazioni ≤ 10,000
Chiavi e valori hanno da 1 a 20 caratteri
Esempi
Input:
operations = ["set theme dark", "get theme", "get language"]
Output atteso:
expected = ["dark", "missing"]
Input:
std::vector<std::string> operations = {"set theme dark", "get theme", "get language"};
Output atteso:
std::vector<std::string> expected = {"dark", "missing"};
Input:
string[] operations = new string[] {"set theme dark", "get theme", "get language"};
Output atteso:
string[] expected = new string[] {"dark", "missing"};
Spiegazione
theme è stato impostato su dark; language non è mai stato impostato, quindi è missing: ["dark", "missing"].
Input:
operations = ["set lang en", "set lang vi", "get lang"]
Output atteso:
expected = ["vi"]
Input:
std::vector<std::string> operations = {"set lang en", "set lang vi", "get lang"};
Output atteso:
std::vector<std::string> expected = {"vi"};
Input:
string[] operations = new string[] {"set lang en", "set lang vi", "get lang"};
Output atteso:
string[] expected = new string[] {"vi"};
Spiegazione
Il secondo set sostituisce il primo valore nella stessa istanza condivisa: ["vi"].
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Tutte le operazioni leggono e scrivono lo stesso unico oggetto.
Suggerimento 2
Un dizionario da chiave a valore basta per le impostazioni.
Suggerimento 3
Una chiave mai impostata deve restituire il testo missing.
Complessità attesa
tempo O(numero di operazioni), spazio aggiuntivo O(numero di chiavi)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.