""" Қала жұптарының жиынтығы берілген: - әр жұп қала арасында қызметкер тікелей ұшып өтті; - ұшу бағыты туралы ақпарат жоғалған. - сондай-ақ ұшу тәртібі де жоғалған. Барлық ұшулар бір саяхатқа тиесілі екені белгілі. Әр келесі ұшу қызметкер алдыңғы ұшудан кейін аяқтаған қаладан бастады. Ешқандай қала қызметкер екі рет болмаған. Саяхаттың басталу қаласы да соңғы нүктеден ерекшеленеді. Маршрут бойынша қала тізбегін шығарыңыз. Екі мүмкін жауап бар, кез келгені жарайды. Мысалдар: [("Мәскеу", "Белград")] -> ["Мәскеу", "Белград"] [("Мәскеу", "Белград"), ("Мәскеу", "Ереван")] -> ["Ереван", "Мәскеу", "Белград"] Flight = tuple[str, str] def get_route(flights: list[Flight]) -> list[str]: ...
Python
файлдан ATM, SDK импорттау pytest-ті импорттау BILLS = {5000, 1000, 500, 100, 50} @pytest.mark.parametrize( "bills_count_const,expected", [ ({5000: 0, 1000: 0, 500: 0, 100: 0, 50: 0}, ЖОҚ), ({5000: 100, 1000: 100, 500: 100, 100: 100, 50: 100}, ИӘ) ] ) def test_false(bills_count_const, expected): ATM(SDK())-ны пайдаланып, atm құру atm.bills_count-ке bills_count_const мәнін орнату amount = 1000 res = atm.withdraw(amount) assert res == expected қайтару
Алгоритмнің уақыттық және кеңістік күрделілігін мәтіннің ұзындығы n және алфавиттің өлшемі m бойынша бағалаңыз.
Көп ағынды немесе асинхронды бағдарламалар жасау тәжірибеңіз болды ма?
```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 ``` Міндет — `a: str` және `s: str` жолдарынан барлық таңбалар бар ең қысқа ішкі жолды табатын `min_s(a: str, s: str)` функциясын жүзеге асыру.
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
```python # a = "abc", бос емес, бірегей (m) # s = "dfaga[bfkac]ebf" => "aceb" (n) O(n) # s = "cfaafb" => "cfaafb" # s = "affb" => "" collections кітапханасынан Counter импорттау def min_s(a: str, s: str) -> str: қажетті = set(a) терезе = Counter() нәтиже = "" сан = 0 сол = 0 ең жақсы ұзындық = float('inf') үшін оң жақ, таңба in enumerate(s): егер таңба қажеттіде және \ терезе[таңба] += 1 егер терезе[таңба]: сан += 1
Қалай анықтауға болады, нақты бір таңбаны (мысалы, A таңбасын) сол жақтан терезені тарылту кезінде тастауға бола ма, алфавитті қамту жоғалмай?
Ең жүктемелі қызмет ең көп қандай сұрауларды секундына өңдей алады?
Қандай жұмыс форматын қарастырасыз?
Бұл тапсырмада графты көрсету үшін қандай деректер құрылымы қолданылуы мүмкін?
# a = "abc", бос емес, бірегей # s = "dfagabfkacebf" => "aceb" # s = ""
""" Қала жұптарының жиынтығы: - әр жұпта тікелей ұшу бар; - ұшу бағыты белгісіз; - ұшу тәртібі де жоғалған. Барлық ұшулар бір саяхатқа тиесілі екені белгілі. Әр келесі ұшу алдыңғы ұшудың аяқталған қаласынан басталады. Қала екі рет 방문 етілмеген. Саяхаттың басталатын қаласы соңғы қаладан басқа. Маршруттағы қалаларды ретімен шығарыңыз. Екі мүмкін жауап бар, кез келгені жарайды. Мысалдар: ["Мәскеу", "Белград"] -> ["Мәскеу", "Белград"] [("Мәскеу", "Белград"), ("Мәскеу", "Ереван")] -> ["Ереван", "Мәскеу", "Белград"] """ Flight = tuple[str, str] def get_route(flights: list[Flight]) -> list[str]: ...
Квадраттық операцияны жоюдан кейін алгоритмнің соңғы күрделілігі қандай? Алфавиттің өлшемі m уақыттық күрделілікке әсер етпейтіні дұрыс па?
Жұмысыңызда қандай дерекқорлар немесе басқа сақтау жүйелерін қолданасыз?
Берілген бүтін сандар тізбегі. Тізбектегі екі элементтің ең кіші мүмкін көбейтіндісін табыңыз (жұп — екі элемент, міндетті түрде қатар емес). Мысалы, 9 4 2 5 3 тізбегі үшін жауап 6 болады.
Бұрын [компания] вакансияларын қарастырдыңыз ба, және рекрутерлермен байланысқан баңыз?