Můžeš popsat hlavní povinnosti a projekty, na kterých jsi pracoval na předchozím místě práce?
Python
Ohodnoťte časovou a prostorovou složitost algoritmu vzhledem k délce textu n a velikosti abecedy m.
Jak velký objem dat jste museli uložit do databáze?
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
""" Sada párů měst je dána: - mezi každým párem měst provedil zaměstnanec přímý let; - informace o směru letu jsou ztraceny; - také je ztracený pořadí letů. Je známo, že všechny lety patří jednomu cestování. Každý následující let začínal ve městě, kde skončil předchozí. Žádné město nebylo navštíveno zaměstnancem dvakrát. Město začátku cesty se také liší od koncového bodu. Vypište města v pořadí podle trasy. Existují dvě možné odpovědi, jakákoli je vhodná. Pří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]: ...
Jaké databáze nebo jiná úložiště používáš při práci?
```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 ``` Úkolem je implementovat funkci `min_s(a: str, s: str) -> str`, která najde nejmenší podřetězec v `s`, obsahující všechny znaky z řetězce `a`.
Jaké je maximální množství požadavků za sekundu, které zpracoval nejvíce zatížený služba?
```python # a = "abc", ne prázdné, unikátní (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 ```
Jaký formát práce zvažujete?
Jakou datovou strukturu lze použít k reprezentaci grafu v tomto úkolu?
Jak zjistit, zda lze při zúžení okna zleva odstranit konkrétní znak (například znak A), aniž by došlo ke ztrátě pokrytí abecedy?
Jedná se o posloupnost celých čísel. Je třeba najít minimální možný součin dvojice prvků posloupnosti (dvojice – dva libovolné prvky, nemusí být po sobě). Například pro posloupnost čísel 9 4 2 5 3 bude odpověď 6.
# a = "abc", ne prázdné, jedinečné # s = "dfagabfkacebf" => "aceb" # s = ""
Jaká je nyní konečná složitost algoritmu po odstranění kvadratické operace? Je pravda, že velikost abecedy m nijak ne ovlivňuje časovou složitost?
""" Sada párů měst je dána: - mezi každým párem měst provedil zaměstnanec přímý let; - informace o směru letu jsou ztraceny; - také je ztracený pořadí letů. Je známo, že všechny lety patří jednomu cestování. Každý následující let začínal ve městě, kde skončil předchozí. Žádné město nebylo navštíveno zaměstnancem dvakrát. Město začátku cesty se také liší od koncového bodu. Vypište města v pořadí trasy. Existují dvě možné odpovědi, jakákoli je vhodná. Pří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]: ...
Zvažoval jsi dříve volná místa v [společnost], kontaktoval jsi personalisty?