Sobes.tech

Өткөн командаңыздын катышуучуларынын санын кантип аныктоого болот?

Junior — Middle
146

next() кандай иштээрин түшүндүрө аласызбы?

146

Кандидат сунушталган чечимди түшүндүрүп берүүнү сурайт (эч кандай минималдуу жана максималдуу жуптардын көбөйтүүлөрүн салыштырганы туурабы?).

143

Азыркы учурда сиздин учурдагы компанияңызда иштей аласызбы?

Intern — Junior
143

Бул чечимдин татаалдыгын (убакыт жана эс тутуму боюнча) баалай аласызбы? Жана эмне үчүн татаалдык O(n^2) эмес?

142

Кош external көзкарандысыз бириктирүү үчүн жадыда жөнөкөй бекитүү (lock) механизмин кантип ишке ашырууга болот?

142

Соңку жолу алгоритмдик тапшырмаларды машыгуу же долбоорлор үчүн аткарыңыз?

Junior — Middle
142

Бөлүштүрүлгөн системаларды колдоо же өнүктүрүү боюнча тажрыйбаңыз барбы?

141

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

141

# Банкомат, который заряжается кассетами с купюрами, с нашим приложением на борту # должен уметь выдавать купюры для заданной суммы или отвечать отказом # При выдаче купюры списываются с баланса банкомата. # Допустимые номиналы: 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

140

Бөлүштүрүлгөн архитектураларга негизделген системаларды түзүү жана тейлөө боюнча тажрыйбаңыз барбы?

Junior — Middle
140

# OneEditApart("мышык", "ит") -> туура эмес # OneEditApart("мышык", "мышыктар") -> туура # OneEditApart("мышык", "кесүү") -> туура # OneEditApart("мышык", "каст") -> туура # OneEditApart("мышык", "a") -> туура # OneEditApart("мышык", "акциялар") -> туура эмес def OneEditApart(s1, s2) -> bool:

139

Практикаңызда сактаган же иштеген эң чоң маалымат өлчөмү кандай болду?

Junior — Middle
138

Кайсы өлкөлөрдө иштөө же кызматташтык мүмкүнчүлүктөрүн карап жатасыз?

Junior — Middle
138

Иш же долбоор издөөңүз азыр кайсы этабда?

Junior — Middle
137

```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 ```

136

Маек берүүчү талапкер тапшырманын шартын көрүп жатканын тактайт.

133

Фронтенд иштеп чыгууда тажрыйбаңыз барбы?

Junior — Middle
130

Канча суммадан баштап сунушту карап чыгууга даярсыз?

129
/5