Sobes.tech

Python

Ako spracovať hraničné prípady vstupných údajov — záporné čísla, príliš veľké súčty, nesprávne hodnoty?

151

Máte praktické skúsenosti s používaním cloudových platforiem na ukladanie dát?

Intern — Junior
151

Ako implementovať jednoduchý mechanizmus zámku (lock) v pamäti na ochranu pred súbežným prístupom bez použitia externých závislostí?

149

Môžeš vysvetliť, ako funguje next()?

148

Aká bola maximálna veľkosť dát, ktoré ste kedy uložili alebo spracovali vo svojej praxi?

Junior — Middle
147

Môžeš odhadnúť zložitosť tohto riešenia (z hľadiska času a pamäte)? A prečo zložitosť nie je O(n^2)?

145

# OneEditApart("mačka", "pes") -> nesprávne # OneEditApart("mačka", "mačke") -> správne # OneEditApart("mačka", "rez") -> správne # OneEditApart("mačka", "hrad") -> správne # OneEditApart("mačka", "na") -> správne # OneEditApart("mačka", "činnosti") -> nesprávne def OneEditApart(s1, s2) -> bool:

144

Kedy ste naposledy riešili algoritmické úlohy na precvičenie alebo projekty?

Junior — Middle
144

Máte skúsenosti s tvorbou a údržbou systémov založených na distribuovaných architektúrach?

Junior — Middle
143

# Bankomat, ktorý sa nabíja kazetami s bankovkami, s našou aplikáciou na palube # musí byť schopný vydávať bankovky pre zadanú sumu alebo odpovedať zamietnutím # Pri vydávaní sa bankovky odpočítavajú zo zostatku bankomatu. # Povolené nominály: 50₽, 100₽, 500₽, 1000₽, 5000₽. class ATM: pass # miesto pre kód # Zariadenie bankomatu: # - peniaze sú umiestnené v kazetách vo vnútri bankomatu, ktoré načítava inšpektor a znovu načítava; # - v každej kazete sú bankovky svojho nominálu; # - bankomat môže spočítať zostávajúce bankovky v kazetách, ale táto operácia trvá dlhú dobu - je vhodné ju volať čo najmenej. # API na interakciu s zariadením bankomatu. # rozhranie SDK môže byť zmenené/rozšírené dohodou strán, ak je to potrebné 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

143

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

142

V ktorých krajinách zvažujete možnosti práce alebo spolupráce?

Junior — Middle
141

Máte skúsenosti s podporou alebo vývojom distribuovaných systémov?

141

V akej fáze je momentálne vaše hľadanie práce alebo projektu?

Junior — Middle
140

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

139

Aké máte skúsenosti s Pythonom a ako dlho ho používate vo svojich projektoch?

Junior — Middle
135

Tvorca pohovoru objasňuje, či kandidát vidí podmienku úlohy.

135

# Zloženosť # Teraz máme novú funkciu produktu: rezerváciu peňazí cez mobilnú aplikáciu. # Na to je potrebné pridať do triedy ATM novú metódu reserve(amount). Tiež je potrebné zvážiť možnosť HardwareError v SDK metódach.

134
/5