Aký bol najväčší objem údajov, ktorý ste museli uložiť do databázy?
Python
Ohodnoťte časovú a priestorovú zložitosť algoritmu vzhľadom na dĺžku textu n a veľkosť abecedy m.
```python # a = "abc", nie prázdne, jedinečné (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 = 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]: c += 1 ```
from file import ATM, SDK import pytest BILLS = {5000, 1000, 500, 100, 50} @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) ] ) def test_false(bills_count_const, expected): atm = ATM(SDK()) atm.bills_count = bills_count_const amount = 1000 res = atm.withdraw(amount) assert res == expected return
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: 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
Máš skúsenosti s vývojom programov s viacvláknovou alebo asynchrónnou funkcionalitou?
```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]: 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 ``` Úlohou je implementovať funkciu `min_s(a: str, s: str) -> str`, ktorá nájde najmenší podreťazec v `s`, ktorý obsahuje všetky znaky z reťazca `a`.
Ako zúžite okno z ľavej strany, ako je možné odstrániť konkrétny znak (napríklad znak A) bez straty pokrytia abecedy?
Akú dátovú štruktúru možno použiť na reprezentáciu grafu v tejto úlohe?
""" Dá sa súborom dvojíc miest: - medzi každou dvojicou miest vykonal zamestnanec priame let; - informácia o smere letu je stratená; - tiež je stratené poradie letov. Je známe, že všetky lety patria k jednému cestovaniu. Každý nasledujúci let začínal v meste, kde skončil predchádzajúci. Žiadne mesto nebolo navštívené zamestnancom dvakrát. Mesto začiatku cesty sa tiež líši od konečného bodu. Vypíšte mestá v poradí trasy. Existujú dve možné odpovede, akákoľvek je vhodná. Príklady: [("Moskva", "Belgrád")] -> ["Moskva", "Belgrád"] [(("Moskva", "Belgrád"), ("Moskva", "Erevan")) -> ["Erevan", "Moskva", "Belgrád"] """ Flight = tuple[str, str] def get_route(flights: list[Flight]) -> list[str]: ...
Aký formát práce zvažujete?
Aká je teraz konečná zložitosť algoritmu po odstránení kvadratickej operácie? Je pravda, že veľkosť abecedy m nijak ne ovplyvňuje časovú zložitosť?
# a = "abc", nie prázdne, jedinečné # s = "dfagabfkacebf" => "aceb" # s = ""
Aké databázy alebo iné úložiská používaš v práci?
Aké je maximálne množstvo požiadaviek za sekundu, ktoré spracoval najzaťaženejší servis?
Daná je postupnosť celých čísel. Je potrebné nájsť minimálne možné súčin dvoch prvkov postupnosti (dvojica - dva ľubovoľné prvky, nie nevyhnutne po sebe idúce). Napríklad, pre postupnosť čísel 9 4 2 5 3 bude odpoveďou 6.
Zvažoval si predtým voľné pracovné miesta v [spoločnosti], kontaktoval si recruiterov?