Sobes.tech

Python

Jaké bylo největší množství uložených dat v projektech?

154

Jak implementovat jednoduchý mechanismus zámku (lock) v paměti pro ochranu před konkurenčním přístupem bez použití externích závislostí?

153

Máte praktické zkušenosti s používáním cloudových platforem pro ukládání dat?

Intern — Junior
152

Jak velký byl maximální objem dat, které jste kdy uložili nebo zpracovali ve své praxi?

Junior — Middle
152

Jak řešit hraniční případy vstupních dat — záporná čísla, příliš velké součty, nesprávné hodnoty?

151

Můžeš odhadnout složitost tohoto řešení (z hlediska času a paměti)? A proč složitost není O(n^2)?

150

Kdy jste naposledy řešili algoritmické úlohy pro praxi nebo projekty?

Junior — Middle
147

# OneEditApart("kočka", "pes") -> nepravda # OneEditApart("kočka", "mačke") -> resnica # OneEditApart("kočka", "stisk") -> resnica # OneEditApart("kočka", "grad") -> resnica # OneEditApart("kočka", "na") -> resnica # OneEditApart("kočka", "dejanja") -> nepravda def OneEditApart(s1, s2) -> bool:

146

# Bankomat, který je nabíjen kazetami s bankovkami, s naší aplikací na palubě # musí být schopen vydávat bankovky za zadanou částku nebo odpovědět odmítnutím # Při vydávání jsou bankovky odečteny ze zůstatku bankomatu. # Přípustné nominální hodnoty: 50R, 100R, 500R, 1000R, 5000R. class ATM: pass # místo pro kód # Zařízení bankomatu: # - peníze jsou umístěny v kazetách uvnitř bankomatu, které načítá inkasant a doplňuje; # - v každé kazetě jsou bankovky své nominální hodnoty; # - bankomat může spočítat zbývající bankovky v kazetách, ale tato operace trvá dlouho - je třeba ji volat co nejméně. # API pro interakci s hardwarem bankomatu. # Rozhraní SDK může být změněno/rozšířeno podle dohody stran, pokud je to nutné 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

146

Máte zkušenosti s tvorbou a údržbou systémů založených na distribuovaných architekturách?

Junior — Middle
146

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

145

V jakých zemích zvažujete možnosti práce nebo spolupráce?

Junior — Middle
144

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

144

Máte zkušenosti s podporou nebo vývojem distribuovaných systémů?

142

V jaké fázi je vaše hledání práce nebo projektu?

Junior — Middle
141

Jaké máte zkušenosti s Pythonem a jak dlouho ho používáte ve svých projektech?

Junior — Middle
139

Tazatel upřesňuje, zda kandidát vidí podmínku úlohy.

137
/5