V jakých situacích je vhodné provádět technickou kontrolu v průběhu pohovoru?
Python
Jaké bylo největší množství uložených dat v projektech?
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í?
Máte praktické zkušenosti s používáním cloudových platforem pro ukládání dat?
Jak velký byl maximální objem dat, které jste kdy uložili nebo zpracovali ve své praxi?
Jak řešit hraniční případy vstupních dat — záporná čísla, příliš velké součty, nesprávné hodnoty?
Můžeš odhadnout složitost tohoto řešení (z hlediska času a paměti)? A proč složitost není O(n^2)?
Jak určit počet počtu účastníků vašeho předchozího týmu?
Kdy jste naposledy řešili algoritmické úlohy pro praxi nebo projekty?
Máte k nám nějaké otázky ohledně role nebo společnosti?
# 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:
# 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
Máte zkušenosti s tvorbou a údržbou systémů založených na distribuovaných architekturách?
```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 ```
V jakých zemích zvažujete možnosti práce nebo spolupráce?
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
Máte zkušenosti s podporou nebo vývojem distribuovaných systémů?
V jaké fázi je vaše hledání práce nebo projektu?
Jaké máte zkušenosti s Pythonem a jak dlouho ho používáte ve svých projektech?
Tazatel upřesňuje, zda kandidát vidí podmínku úlohy.