Sobes.tech

Python

```python # a = "abc", non vuoto, unico (m) # s = "dfaga[bfkac]ebf" => "aceb" (n) O(n) # s = "cfaafb" => "cfaafb" # s = "affb" => "" from collections import Counter def min_s(a: str, s: str) -> str: need = Counter(a) ```

157

Qual è stato la dimensione massima dei dati che hai mai memorizzato o elaborato nella tua pratica?

Junior — Middle
157

Come implementare un meccanismo di blocco (lock) semplice in memoria per proteggersi dall'accesso concorrente senza usare dipendenze esterne?

157

Hai esperienza pratica nell'uso di piattaforme cloud per l'archiviazione dei dati?

Intern — Junior
154

Come gestire i casi limite dei dati di input — numeri negativi, somme troppo grandi, valori non corretti?

151

# Bancomat che si carica con cassette di banconote, con la nostra app a bordo # deve essere in grado di erogare banconote per una somma data o rispondere con un rifiuto # Durante l'erogazione, le banconote vengono scalate dal saldo del bancomat. # Denominazioni consentite: 50R, 100R, 500R, 1000R, 5000R. class ATM: pass # spazio per il codice # Dispositivo del bancomat: # - il denaro è posizionato in cassette all'interno del bancomat, caricate dall'incassatore e ricaricate; # - ogni cassetta contiene banconote della sua denominazione; # - il bancomat può contare le banconote rimanenti nelle cassette, ma questa operazione richiede tempo - dovrebbe essere chiamata il meno possibile. # API per interagire con l'hardware del bancomat. # L'interfaccia SDK può essere modificata/estesa secondo accordo tra le parti, se necessario 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

149

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

149

Quando è stata l'ultima volta che hai risolto problemi algoritmici per esercitarti o progetti?

Junior — Middle
149

Hai esperienza nella creazione e manutenzione di sistemi basati su architetture distribuite?

Junior — Middle
147

In quali paesi stai considerando opzioni di lavoro o collaborazione?

Junior — Middle
147

# OneEditApart("gatto", "cane") -> falso # OneEditApart("gatto", "gatti") -> vero # OneEditApart("gatto", "taglio") -> vero # OneEditApart("gatto", "cast") -> vero # OneEditApart("gatto", "a") -> vero # OneEditApart("gatto", "atti") -> falso def OneEditApart(s1, s2) -> bool:

146

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

146

Qual è la tua esperienza con Python e da quanto tempo lo usi nei tuoi progetti?

Junior — Middle
145

A che punto è attualmente la tua ricerca di lavoro o progetto?

Junior — Middle
143

Hai esperienza nel supporto o nello sviluppo di sistemi distribuiti?

142

Parlami più nel dettaglio dell'ultimo progetto: di cosa si trattava, quali compiti hai svolto, qual era la tua area di responsabilità?

142
/5