Өткөн командаңыздын катышуучуларынын санын кантип аныктоого болот?
Python
next() кандай иштээрин түшүндүрө аласызбы?
Кандидат сунушталган чечимди түшүндүрүп берүүнү сурайт (эч кандай минималдуу жана максималдуу жуптардын көбөйтүүлөрүн салыштырганы туурабы?).
Бул чечимдин татаалдыгын (убакыт жана эс тутуму боюнча) баалай аласызбы? Жана эмне үчүн татаалдык O(n^2) эмес?
Кош external көзкарандысыз бириктирүү үчүн жадыда жөнөкөй бекитүү (lock) механизмин кантип ишке ашырууга болот?
Соңку жолу алгоритмдик тапшырмаларды машыгуу же долбоорлор үчүн аткарыңыз?
Бөлүштүрүлгөн системаларды колдоо же өнүктүрүү боюнча тажрыйбаңыз барбы?
class ATM(SKD): def __init__(self, atm_api: "SKD"): self.atm_api: SKD = atm_api self.bills_count: dict[int:int] = {bill: self.atm_api.count_banknotes(bill) for bill in BILLS} def withdraw(self, amount: int) -> bool: bills_plan: dict[int: int] = {} remaining = amount for bill in BILLS: available = self.bills_count[bill] take = min(remaining // bill, available) if take > 0: bills_plan[bill] = take remaining -= take * bill if remaining != 0: return False bills_count_const = {50: 0, 100: 2, 500: 0, 1000: 0, ...}, expected = True @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), ({5000: 1, 1000: 0, 500: 0, 100: 2, 50: 0}, True) ] ) def test_false(bills_count_const, expected): atm = ATM(FakeSDK()) atm.bills_count = bills_count_const amount = 1000 res = atm.withdraw(amount) assert res == expected
# Банкомат, который заряжается кассетами с купюрами, с нашим приложением на борту # должен уметь выдавать купюры для заданной суммы или отвечать отказом # При выдаче купюры списываются с баланса банкомата. # Допустимые номиналы: 50Р, 100Р, 500Р, 1000Р, 5000Р. class ATM: pass # место для кода # Устройство банкомата: # - деньги расположены в кассетах внутри банкомата, которые загружает инкассатор и перезагружает банкомат; # - в каждой кассете лежат купюры своего номинала; # - банкомат может подсчитать оставшиеся в кассетах банкноты, но эта операция занимает продолжительное время - её стоит вызывать как можно реже. # API для взаимодействия с аппаратурой банкомата. # интерфейс SDK может быть изменён/расширен по договорённости сторон, если это необходимо class SDK(ABC): @abstractmethod def count_banknotes(self, banknote: int) -> int: pass @abstractmethod def move_banknote_to_dispenser(self, banknote: int, count: int) -> None: pass @abstractmethod def open_dispenser(self) -> None: pass
Бөлүштүрүлгөн архитектураларга негизделген системаларды түзүү жана тейлөө боюнча тажрыйбаңыз барбы?
# OneEditApart("мышык", "ит") -> туура эмес # OneEditApart("мышык", "мышыктар") -> туура # OneEditApart("мышык", "кесүү") -> туура # OneEditApart("мышык", "каст") -> туура # OneEditApart("мышык", "a") -> туура # OneEditApart("мышык", "акциялар") -> туура эмес def OneEditApart(s1, s2) -> bool:
Практикаңызда сактаган же иштеген эң чоң маалымат өлчөмү кандай болду?
Кайсы өлкөлөрдө иштөө же кызматташтык мүмкүнчүлүктөрүн карап жатасыз?
Иш же долбоор издөөңүз азыр кайсы этабда?
Биз менен ролго же компанияга байланыштуу суроолоруңуз барбы?
```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] == 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 ```
Маек берүүчү талапкер тапшырманын шартын көрүп жатканын тактайт.
Фронтенд иштеп чыгууда тажрыйбаңыз барбы?
Канча суммадан баштап сунушту карап чыгууга даярсыз?