Sobes.tech
Middle+
28

"""Napisz kod, który wyodrębnia linki z surowego tekstu i sortuje je według określonych reguł. Lista linków, która zostanie zwrócona, nie powinna zawierać duplikatów. Reguły sortowania są następujące: - Priorytet 1: najpierw pierwsze wykryte linki w ilości self.first_extracted_links - Priorytet 2: następnie linki do chmur i dokumentów (Yandex Disk itp.) - Priorytet 3: potem linki do plików (z rozszerzeniami .exe, .pdf, .rar itd.) - Priorytet 4: pozostałe linki posortowane od największej do najmniejszej długości ciągu Należy również uwzględnić ograniczenie ilości linków i zaimplementować menedżera kontekstu. Można uruchomić na przykład w [link] Podsumowując: - Daje się 30 minut na wykonanie - Napisać funkcje apply, process, funkcje dla menedżera kontekstu - Wszystkie testy muszą przejść - Testów nie można modyfikować - Można używać importów - Po napisaniu można sprawdzić uruchamiając lokalnie i poprawić w razie potrzeby regex do wyszukiwania linków: (?:https?|ftp):\/\/(?:[a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(?::\d+)?(?:\/[^\s()]*)?""" class LinkExtractor: DEFAULT_CLOUDS = frozenset(( "drive.google.com", "mediafire.com", "yadi.sk", "disk.yandex.ru", "cloud.mail.ru", "mega.nz" )) # Możesz rozbudować tę metodę lub przepisać ją def __init__(self, max_links: int = 7, first_extracted_links: int = 2, clouds = None): # Maksymalna liczba linków do zwrócenia self.max_links = max_links # Liczba linków wyodrębnionych dla pierwszego warunku self.first_extracted_links = first_extracted_links # Lista domen uznawanych za chmury dla drugiego warunku self.clouds = clouds or self.DEFAULT_CLOUDS self._results = [] # Należy napisać tę metodę, dodaje część tekstu do analizy def apply(self, text) -> "LinkExtractor": ... return self

Firmy, w których zadano pytania
АВ Софт