Asosiy tarkibga o‘tish
CodeArena
Kirish
Kurslar

Python vositalari · dict, set va kortej: tez qidirish va sanash

Lug‘at va to‘plam

Easy 14 masala

Boshlash

Nazariya

Lug‘at va to‘plam

Hash-jadval «bu element bormi?» savoliga o‘rtacha O(1) vaqtda javob beradi.

seen = set()
for x in a:
    if x in seen:
        print("YES"); break
    seen.add(x)

from collections import Counter
cnt = Counter(s)           # har belgi necha marta

Qachon ishlatiladi

  • Takrorlarni topish, juftlik izlash (target - x oldin uchraganmi?).
  • Sanash: anagramma, ko‘pchilik ovozi, harflar yetarlimi.

list da x in a — O(n), set da — O(1). Katta kirishda farq hal qiluvchi.

Kortej va to‘plam amallari

Kortej (tuple) — o‘zgarmas ro‘yxat. U set elementi va dict kaliti bo‘la oladi, ro‘yxat esa bo‘la olmaydi.

visited = {(0, 0)}
dist = {(0, 0): 0}
a, b = b, a                 # o‘rin almashtirish ham kortej orqali ishlaydi

To‘plam (set) — takrorsiz elementlar.

a, b = {1, 2, 3}, {2, 3, 4}
a | b, a & b, a - b         # birlashma, kesishma, ayirma
len(set(nums))              # nechta turli son
sorted(set(nums))           # turli sonlar o‘sish tartibida

set tartibni saqlamaydi: chiqarishdan oldin saralang.

Beginner masalalar 1

Easy masalalar 11

Medium masalalar 2

Menyu

Ko‘rinish

Klaviatura yorliqlari

Ctrl K yoki /
Qidirish va buyruqlar
g h
Bosh sahifa
g p
Masalalar
g c
Musobaqalar
g r
Reyting
Ctrl Enter
Masala sahifasida — yechimni yuborish
?
Shu oyna