Sobes.tech

Python

De kandidaat vraagt om uitleg over de voorgestelde oplossing (waarom het vergelijken van de producten van minimale en maximale paren nodig is).

143

Kunt u momenteel in uw huidige bedrijf werken?

Intern — Junior
143

Hoe implementeer je een eenvoudig lock-mechanisme in geheugen ter bescherming tegen gelijktijdige toegang zonder externe afhankelijkheden?

142

Kun je de complexiteit van deze oplossing beoordelen (qua tijd en geheugen)? En waarom is de complexiteit niet O(n^2)?

142

Wanneer hebt u voor het laatst algoritmische problemen opgelost voor oefening of projecten?

Junior — Middle
142

Heeft u ervaring met het ondersteunen of ontwikkelen van gedistribueerde systemen?

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

# Geldautomaat die wordt geladen met cassettes met bankbiljetten, met onze app aan boord # moet in staat zijn om bankbiljetten uit te geven voor een opgegeven bedrag of te weigeren # Bij het uitgeven worden de bankbiljetten afgeschreven van het saldo van de automaat. # Toegestane nominalen: 50€, 100€, 500€, 1000€, 5000€. class ATM: pass # plek voor code # Apparatuur van de automaat: # - het geld bevindt zich in cassettes binnen de automaat, geladen door de inkassojournalist en opnieuw geladen; # - elke cassette bevat bankbiljetten van één nominale waarde; # - de automaat kan de resterende bankbiljetten in de cassettes tellen, maar deze operatie duurt lang - moet zo weinig mogelijk worden aangeroepen. # API voor interactie met de automaat. # de SDK-interface kan worden gewijzigd/uitgebreid in onderling overleg indien nodig 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

Heeft u ervaring met het creëren en onderhouden van systemen gebaseerd op gedistribueerde architecturen?

Junior — Middle
140

Wat was de maximale omvang van gegevens die je ooit hebt opgeslagen of verwerkt in je praktijk?

Junior — Middle
139

# OneEditApart("kat", "hond") -> onwaar # OneEditApart("kat", "katten") -> waar # OneEditApart("kat", "knip") -> waar # OneEditApart("kat", "kast") -> waar # OneEditApart("kat", "at") -> waar # OneEditApart("kat", "handelingen") -> onwaar def OneEditApart(s1, s2) -> bool:

139

In welke landen overweeg je werk- of samenwerkingsmogelijkheden?

Junior — Middle
138

In welke fase bevindt uw zoektocht naar werk of project zich momenteel?

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

De interviewer verduidelijkt of de kandidaat de voorwaarde van de taak ziet.

133

Heeft u ervaring met frontend-ontwikkeling?

Junior — Middle
130

Vanaf welk bedrag bent u bereid een aanbod te overwegen?

129
/5