from collections import Counter def min_s(a: str, s: str) -> str: need = set(a) window = Counter() res = "" c = 0 left = 0 best_len = float('inf') for right, char in enumerate(s): if char in need: window[char] += 1 if window[char] == 1: c += 1 while c == len(need): if right - left + 1 < best_len: res = s[left:right + 1] best_len = right - left + 1 if s[left] in need: window[s[left]] -= 1 if window[s[left]] == 0: c -= 1 left += 1 return res
Python
```python # a = "abc", жок эмес, уникалдуу (m) # s = "dfaga[bfkac]ebf" => "aceb" (n) O(n) # s = "cfaafb" => "cfaafb" # s = "affb" => "" from collections import Counter def min_s(a: str, s: str) -> str: need = set(a) window = Counter() res = "" c = 0 left = 0 best_len = float('inf') for right, char in enumerate(s): if char in need and \ window[char] += 1 if window[char]: c += 1 ```
""" Берилген бүтүн сандардын тизмеси. Тизмедеги эки элементтин эң кичинекей мүмкүн болгон көбөйтмүн табуу керек (жуп - эки каалаган элемент, зарыл эмес биринин артынан бири болуу керек эмес). Мисалы, 9 4 2 5 3 сандарынын тизмеси үчүн жооп 6 болот. """ def find_min_product(arr: list[int]) -> int: ...
Маалыматтар базасында сактоо үчүн эң чоң маалымат көлөмү кандай болду?
Көп жиптүү же асинхрондук программалар иштеп чыгуу тажрыйбасың барбы?
```python from collections import Counter def min_s(a: str, s: str) -> str: need = set(a) window = Counter() res = "" c = 0 left = 0 best_len = float('inf') for right, char in enumerate(s): if char in need and \ window[char] += 1 if window[char]: c += 1 while c == len(need): if right - left + 1< best_len: res = s[left:right + 1] best_len = right - left + 1 if s[left] in need: window[s[left]] -= 1 if window[s[left]] == 0: c -= 1 left += 1 return res ``` Максаты — `min_s(a: str, s: str) -> str` функциясын ишке ашыруу, `s` ичинде `a` сапындагы бардык белгилерди камтыган эң кичинекей бөлүмдү табуу.
from file import ATM, SDK import pytest BILLS = {5000, 1000, 500, 100, 50} @pytest.mark.parametrize( "bills_count_const,expected", [ ({5000: 0, 1000: 0, 500: 0, 100: 0, 50: 0}, False), ({5000: 100, 1000: 100, 500: 100, 100: 100, 50: 100}, True) ] ) def test_false(bills_count_const, expected): atm = ATM(SDK()) atm.bills_count = bills_count_const amount = 1000 res = atm.withdraw(amount) assert res == expected return
Кайсы иш форматын карап жатасыз?
Терезени солдон кыскартканда, белгилүү бир белгини (мисалы, белгиси A) алып салса болобу, алфавиттин камтуусун жоготпостон?
Бул тапшырмада графты көрсөтүү үчүн кайсы маалыматтык структураны колдонсо болот?
""" Шаарлардын эки тараптуу тизмеси берилген: - ар бир эки шаар ортосунда кызматкер түз учуп кеткен; - учуу багыты тууралуу маалымат жоголгон; - ошондой эле, учууларды тартиби да жоголгон. Билгибизче, бардык учуулар бир сапарга тиешелүү. Ар бир кийинки учуу алгачкы учуу аяктагандан кийин башталат. Эч кандай шаар кызматкер тарабынан эки жолу кыдырылган эмес. Сапар башталуучу шаары акыркы пункттан айырмаланат. Шаарларды маршрут боюнча тартипте чыгарыңыз. Эки мүмкүн жооп бар, каалаганын алса болот. Мисалдар: [("Москва", "Белград")] -> ["Москва", "Белград"] [(("Москва", "Белград"), ("Москва", "Ереван")) -> ["Ереван", "Москва", "Белград"] """ Flight = tuple[str, str] def get_route(flights: list[Flight]) -> list[str]: ...
# a = "abc", бош эмес, уникалдуу # s = "dfagabfkacebf" => "aceb" # s = ""
Квадраттык операцияны жок кылгандан кийин алгоритмдин акыркы кыйынчылыгы кандай? Алфавиттин m өлчөмү убакыттык кыйынчылыкка эч кандай таасир этпейт деп туурабы?
Иште кандай маалыматтар базалары же башка сактоо жайларын колдонуп жатасың?
Эң жүк ташыган кызмат бир секундта канча суроо иштеткен?
Бул бүтүн сандардын үзүндүсү. Үзүндүдө эки элементтин эң төмөнкү мүмкүн болгон көбөйтүлүшүн табуу керек (эки элемент – кандайдыр бир эки элемент, зарыл эмес биринин артынан бири болуу). Мисалы, 9 4 2 5 3 сандар үзүндүсү үчүн жооп 6 болот.
Эми мурда [компания]да бош бош орундарга карап чыккансызбы, жумуш берүүчүлөр менен байланышкансызбы?