Middle+
38
"""Scrivi un codice che estragga i link dal testo grezzo e li ordini secondo regole specifiche. L'elenco dei link che verrà restituito non deve contenere duplicati. Le regole di ordinamento sono le seguenti: - Priorità 1: Prima i primi link rilevati in quantità di self.first_extracted_links - Priorità 2: Poi link a cloud e documenti (Yandex Disk, ecc.) - Priorità 3: Poi link a file (con estensioni .exe, .pdf, .rar, ecc. alla fine del percorso) - Priorità 4: Gli altri link ordinati dalla lunghezza maggiore a quella minore Deve anche considerare il limite sulla quantità di link e implementare un gestore di contesto. Può essere eseguito, ad esempio, in [link] In sintesi: - Si concedono 30 minuti per l'esecuzione - Scrivere funzioni apply, process, funzioni per il gestore di contesto - Tutti i test devono passare - I test non possono essere modificati - È permesso usare import - Dopo aver scritto, si può verificare eseguendo localmente e correggere se necessario regex per la ricerca di link: (?: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" )) # Può espandere questo metodo o riscriverlo def __init__(self, max_links: int = 7, first_extracted_links: int = 2, clouds = None): # Numero massimo di link da restituire self.max_links = max_links # Numero di link estratti per la prima condizione self.first_extracted_links = first_extracted_links # Lista di domini considerati come cloud per la seconda condizione self.clouds = clouds or self.DEFAULT_CLOUDS self._results = [] # Scrivere questo metodo, che aggiunge parte del testo da analizzare def apply(self, text) -> "LinkExtractor": ... return self
Le aziende dove è stato chiesto
АВ Софт