Asosiy tarkibga o‘tish

O‘rganish

Kirish
Qo‘llanma

Qo‘llanma · Dasturlash

stack

Masalalar tez orada

Nazariya

Stek — «oxirgi kirgan birinchi chiqadi» (LIFO). Python’da oddiy ro‘yxat: append — qo‘shish, pop — olish, st[-1] — tepadagi element. Hammasi O(1).

Qavslar balansi

pairs = {")": "(", "]": "[", "}": "{"}
st = []
for ch in s:
    if ch in "([{":
        st.append(ch)
    elif not st or st.pop() != pairs[ch]:
        print("NO"); break
else:
    print("YES" if not st else "NO")

Monoton stek

Har element uchun «o‘ngdagi birinchi katta element»ni O(n) da topish:

ans, st = [-1] * n, []          # st — indekslar, qiymatlari kamayuvchi
for i, x in enumerate(a):
    while st and a[st[-1]] < x:
        ans[st.pop()] = x
    st.append(i)

Qo‘llanishi: ifodalarni hisoblash, «undo», DFS ni rekursiyasiz yozish.

Bu mavzu bo‘yicha masalalar tez orada qo‘shiladi.

Shu mavzu kirgan kurslar

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