Sobes.tech

Python

Můžeš popsat hlavní povinnosti a projekty, na kterých jsi pracoval na předchozím místě práce?

Junior — Middle
123

Ohodnoťte časovou a prostorovou složitost algoritmu vzhledem k délce textu n a velikosti abecedy m.

123

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

121

""" 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]: ...

120

Jaké databáze nebo jiná úložiště používáš při práci?

120

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

119

Jaké je maximální množství požadavků za sekundu, které zpracoval nejvíce zatížený služba?

119

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

118

Jakou datovou strukturu lze použít k reprezentaci grafu v tomto úkolu?

117

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?

115

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.

114

# a = "abc", ne prázdné, jedinečné # s = "dfagabfkacebf" => "aceb" # s = ""

113

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?

113

""" 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]: ...

113

Zvažoval jsi dříve volná místa v [společnost], kontaktoval jsi personalisty?

106
/5