En İyi 150 RöportajKolay

Zamana Dayalı Anahtar Değer Deposu

'Zamana Dayalı Anahtar Değer Deposu' sorunu için ayrıntılı kılavuz ve Python uygulaması.

Sorun Bildirimi

Kolay

Aynı anahtar için farklı zaman damgalarında birden fazla değer depolayabilen ve anahtarın değerini belirli bir zaman damgasında alabilen, zamana dayalı bir anahtar/değer veri yapısı tasarlayın.

TimeMap sınıfını uygulayın:

- TimeMap() Nesneyi başlatır.

- set(key: str, value: str, timestamp: int) key anahtarını value değerine sahip olarak belirtilen zamanda timestamp saklar.

- get(key: str, timestamp: int) -> str set daha önce timestamp_prev <= timestamp ile çağrılmış olacak şekilde bir değer döndürür. Böyle birden fazla değer varsa, en büyük timestamp_prev ile ilişkili değeri döndürür. Hiçbir değer yoksa "" değerini döndürür.

Kısıtlamalar
  • 1 <= key.length, value.length <= 100
  • key and value consist of lowercase English letters and digits
  • 1 <= timestamp <= 10^7
  • All timestamps of set are strictly increasing for each key
  • At most 2 * 10^5 calls will be made to set and get

Örnekler

Example 1
Input
["TimeMap", "set", "get", "get", "set", "get", "get"]
[[], ["foo", "bar", 1], ["foo", 1], ["foo", 3], ["foo", "bar2", 4], ["foo", 4], ["foo", 5]]
Output
[None, None, "bar", "bar", None, "bar2", "bar2"]
Explanation

set("foo", "bar", 1): stores bar at time 1. get("foo", 1): returns "bar". get("foo", 3): returns "bar" (latest value at or before time 3). set("foo", "bar2", 4): stores bar2 at time 4. get("foo", 4): returns "bar2". get("foo", 5): returns "bar2".

Need a Hint?
Kümeler veya yığınlar gibi İkili Aramaya özgü veri yapılarını kullanmayı düşünün.
Edge Cases to Watch
  • Boş giriş yapıları
  • Tek eleman girişleri
  • Büyük sayısal sınırlar

Çözmeye Hazır mısınız?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Editörde Aç
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.