Sobes.tech

Python

Можеш ли објаснити како ради next()?

145

Koje osobine zaposlenih pomažu izgradnji efikasnog i harmoničnog tima?

Junior — Middle
145

Када сте последњи пут решавали алгоритамске задатке за праксу или пројекте?

Junior — Middle
142

Да ли тренутно можете да радите у вашој тренутној компанији?

Intern — Junior
142

Можеш ли да процениш сложеност овог решења (по времену и меморији)? И зашто сложеност није O(n^2)?

141

Kako implementirati jednostavan mehanizam zaključavanja (lock) u memoriji za zaštitu od konkurentnog pristupa bez korišćenja spoljašnjih zavisnosti?

141

Имате ли искуства у подршци или развоју расподељених система?

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

140

# Bankomat koji se puni kasetama sa novčanicama, sa našom aplikacijom na brodu # treba moći da isporuči novčanice za zadatu sumu ili da odgovori odbijanjem # Pri isporuci, novčanice se oduzimaju sa stanja bankomata. # Dozvoljene nominalne vrednosti: 50R, 100R, 500R, 1000R, 5000R. class ATM: pass # mesto za kod # Uređaj bankomata: # - novac je smešten u kasetama unutar bankomata, koje učitava inspektor i dopunjava; # - u svakoj kesi se nalaze novčanice svoje nominalne vrednosti; # - bankomat može da prebroji preostale banknote u kasetama, ali ta operacija traje dugo - treba je pozivati što ređe. # API za interakciju sa hardverom bankomata. # Interfejs SDK može biti izmenjen/proširen po dogovoru strana, ako je potrebno 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

Da li imate iskustva u kreiranju i održavanju sistema zasnovanih na distribuiranim arhitekturama?

Junior — Middle
139

Кандидат тражи објашњење предложеног решења (зашто је потребно упоредити производе минималних и максималних парова).

138

# OneEditApart("мачка", "пас") -> нетачно # OneEditApart("мачка", "мачке") -> точно # OneEditApart("мачка", "рез") -> точно # OneEditApart("мачка", "каст") -> точно # OneEditApart("мачка", "на") -> точно # OneEditApart("мачка", "акције") -> нетачно def OneEditApart(s1, s2) -> bool:

138

У којим земљама разматрате опције за рад или сарадњу?

Junior — Middle
137

На којој сте фази тренутно у потрази за послом или пројектом?

Junior — Middle
137

Koji je bio maksimalni veličina podataka koje ste ikada skladištili ili obrađivali u svojoj praksi?

Junior — Middle
134

Интервјуирајући појашњава да ли кандидат види услов задатка.

133

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

133

Po kom principu treba pomerati levu granicu prozora kada već pokriva ceo alfabet?

129

# Komplikacija # Sada imamo novu funkciju proizvoda: rezervaciju novca putem mobilne aplikacije. # Za to, u klasi ATM, treba dodati novu metodu reserve(amount). Takođe, treba uzeti u obzir mogućnost HardwareError u SDK metodama.

129
/5