Middle+
33
"""Belirli kurallara göre ham metinden bağlantıları çıkaran ve sıralayan bir kod yazın. Döndürülecek bağlantı listesi tekrar içermemelidir. Sıralama kuralları şunlardır: - Öncelik 1: İlk bulunan bağlantılar, self.first_extracted_links sayısında - Öncelik 2: Bulut diskleri ve belgelerine (Yandex Disk vb.) bağlantılar - Öncelik 3: Dosya bağlantıları (.exe, .pdf, .rar vb. uzantılarıyla biten) - Öncelik 4: Kalan bağlantılar, uzunluklarına göre azalan sırayla Ayrıca bağlantı sayısı sınırını dikkate almalı ve bir bağlam yöneticisi (context manager) uygulamalısınız. Örneğin [link] üzerinde çalıştırılabilir. Özetle: - 30 dakika süre verilir - apply, process fonksiyonları ve bağlam yöneticisi fonksiyonları yazılmalı - Tüm testler tamamlanmalı - Testler değiştirilemez - import'lar kullanılabilir - Yazdıktan sonra yerel olarak çalıştırıp gerekirse düzeltebilirsiniz Bağlantı arama regex'i: (?: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" )) # Bu metodu genişletebilir veya yeniden yazabilirsiniz def __init__(self, max_links: int = 7, first_extracted_links: int = 2, clouds = None): # Döndürülecek maksimum bağlantı sayısı self.max_links = max_links # İlk koşul için çıkarılan bağlantı sayısı self.first_extracted_links = first_extracted_links # Bulut olarak kabul edilen alan adları listesi self.clouds = clouds or self.DEFAULT_CLOUDS self._results = [] # Bu metodu yazın, analiz edilmek üzere metnin bir kısmını ekler def apply(self, text) -> "LinkExtractor": ... return self
Sorulan şirketler
АВ Софт