Sobes.tech
Middle+
31

"""Scrieți un cod care extragează linkuri din textul brut și le sortează conform unor reguli specifice. Lista de linkuri care va fi returnată nu trebuie să conțină duplicate. Regulile de sortare sunt următoarele: - Prioritatea 1: Mai întâi, primele linkuri detectate în cantitatea de self.first_extracted_links - Prioritatea 2: Apoi, linkuri către discuri în cloud și documente (Yandex Disk etc.) - Prioritatea 3: Apoi, linkuri către fișiere (cu extensii .exe, .pdf, .rar etc.) - Prioritatea 4: Restul linkurilor sortate de la cele mai lungi la cele mai scurte De asemenea, trebuie să țineți cont de limita de număr de linkuri și să implementați un manager de context. Se poate rula, de exemplu, în [link] Rezumat: - Se acordă 30 de minute pentru execuție - Scrieți funcțiile apply, process, funcții pentru managerul de context - Toate testele trebuie să treacă - Testele nu pot fi modificate - Se pot folosi importuri - După scriere, se poate verifica rulând local și corectând dacă este necesar regex pentru căutarea linkurilor: (?: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" )) # Poți extinde această metodă sau o poți rescrie def __init__(self, max_links: int = 7, first_extracted_links: int = 2, clouds = None): # Numărul maxim de linkuri returnate self.max_links = max_links # Numărul de linkuri extrase pentru prima condiție self.first_extracted_links = first_extracted_links # Lista de domenii considerate ca fiind în cloud pentru a doua condiție self.clouds = clouds or self.DEFAULT_CLOUDS self._results = [] # Scrie această metodă, care adaugă o parte din text pentru analiză def apply(self, text) -> "LinkExtractor": ... return self

Companiile au fost întrebate
АВ Софт