Flatten a Dictionary (Reduzieren Sie ein Wörterbuch) #109
Replies: 5 comments
-
A recursion is natural choice for this kind of problem. We iterate over the keys in dict and distinguish between two cases: If the value mapped to a key is a primitive, we take that key and simply concatenate it to the flattened key we created up to this point. We then map the resultant key to the value in the output dictionary. If the value is a dictionary, we do the same concatenation, but instead of mapping the result to the value in the output dictionary, we recurse on the value with the newly formed key. Pseudocode:
Time Complexity: O(N), where N is the number of keys in the input dictionary. We visit every key in dictionary only once, hence the linear time complexity. Space Complexity: O(N) since the output dictionary is asymptotically as big as the input dictionary. We also store recursive calls in the execution stack which in the worst case scenario could be O(N), as well. The total is still O(N). |
Beta Was this translation helpful? Give feedback.
-
If your peer cannot come up with a solution, ask them to analyze the input and see if they see a pattern. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Ein Wörterbuch ist eine Art von Datenstruktur, die von Haus aus von allen wichtigen interpretierten Sprachen wie JavaScript, Python, Ruby und PHP unterstützt wird, wo sie als Objekt, Wörterbuch, Hash bzw. Array bekannt ist. Einfach ausgedrückt ist ein Wörterbuch eine Sammlung von eindeutigen Schlüsseln und deren Werten. Die Werte können in der Regel von einem beliebigen primitiven Typ sein (z. B. Integer, Boolean, Double, String usw.) oder andere Dictionaries (Dictionaries können verschachtelt werden). Für diese Übung nehmen wir jedoch an, dass die Werte entweder eine ganze Zahl, eine Zeichenkette oder ein anderes Wörterbuch sind.
Schreiben Sie eine Funktion flattenDictionary, die eine reduzierte Version des Wörterbuchs dict zurückgibt.
Wenn Sie eine kompilierte Sprache wie Java, C++, C#, Swift und Go verwenden, können Sie eine Map/Dictionary/Hash-Tabelle verwenden, die Strings (Schlüssel) auf einen generischen Typ abbildet (z. B. Object in Java, AnyObject in Swift usw.), um verschachtelte Wörterbücher zu ermöglichen.
Wenn ein bestimmter Schlüssel leer ist, sollte er von der Ausgabe ausgeschlossen werden (siehe e im Beispiel unten).
Pramp Interview
Beta Was this translation helpful? Give feedback.
All reactions