Sobes.tech

Python

Namizəd təklif olunan həll yolunu izah etməyi istəyir (nə üçün ən kiçik və ən böyük cütlüklərin hasillərini müqayisə etmək lazımdır).

149

İşə qəbul mərhələsində texniki yoxlamanın həyata keçirilməsi üçün hansı vəziyyətlər uyğundur?

149

next() necə işləyir, izah edə bilərsən?

148

Xarici asılılıqlar olmadan rəqabətli girişdən qorunmaq üçün yaddaşda sadə kilid (lock) mexanizmi necə həyata keçirilir?

147

Təcrübənizdə heç vaxt saxladığınız və ya işlədiyiniz ən böyük məlumat ölçüsü nə idi?

Junior — Middle
146

Bu həllin mürəkkəbliyini (vaxt və yaddaş baxımından) qiymətləndirə bilərsinizmi? Və niyə mürəkkəblik O(n^2) deyil?

145

Ən son nə vaxt praktika və ya layihələr üçün algoritmik məsələləri həll etdiniz?

Junior — Middle
143

# Bankomat, ki banknotların kassetləri ilə yüklənir, bizim tətbiqimizlə birlikdə # müəyyən edilmiş məbləğ üçün banknotları vermək və ya rədd cavabı vermək qabiliyyətinə malik olmalıdır # Banknotlar verildikdə, onlar bankomatın balansından çıxılır. # İcazə verilən nominal dəyərlər: 50₼, 100₼, 500₼, 1000₼, 5000₼. class ATM: pass # kod üçün yer # Bankomatın cihazı: # - pul bankomatın içindəki kassetlərdə yerləşir, inspektor tərəfindən yüklənir və yenidən yüklənir; # - hər kassette öz nominal dəyərində banknotlar yerləşir; # - bankomat qalan banknotları saya bilər, amma bu əməliyyat vaxt alır - onu mümkün qədər az çağırmaq lazımdır. # Bankomat avadanlığı ilə qarşılıqlı əlaqə üçün API. # SDK interfeysi tərəflər arasında razılaşma ilə dəyişdirilə və genişləndirilə bilər, əgər lazım olarsa class SDK(ABC): @abstractmethod def count_banknotes(self, banknote: int) -> int: pass @abstractmethod def move_banknote_to_dispenser(self, banknote: int, count: int) -> None: pass @abstractmethod def open_dispenser(self) -> None: pass

143

Paylanmış memarlığa əsaslanan sistemlərin yaradılması və saxlanması təcrübəniz varmı?

Junior — Middle
142

# OneEditApart("pişik", "it") -> yanlış # OneEditApart("pişik", "pişiklər") -> doğru # OneEditApart("pişik", "kəsik") -> doğru # OneEditApart("pişik", "kasta") -> doğru # OneEditApart("pişik", "ə") -> doğru # OneEditApart("pişik", "fəaliyyətlər") -> yanlış def OneEditApart(s1, s2) -> bool:

142

class ATM(SKD): def __init__(self, atm_api: "SKD"): self.atm_api: SKD = atm_api self.bills_count: dict[int:int] = {bill: self.atm_api.count_banknotes(bill) for bill in BILLS} def withdraw(self, amount: int) -> bool: bills_plan: dict[int: int] = {} remaining = amount for bill in BILLS: available = self.bills_count[bill] take = min(remaining // bill, available) if take > 0: bills_plan[bill] = take remaining -= take * bill if remaining != 0: return False bills_count_const = {50: 0, 100: 2, 500: 0, 1000: 0, ...}, expected = True @pytest.mark.parametrize( "bills_count_const,expected", [ ({5000: 0, 1000: 0, 500: 0, 100: 0, 50: 0}, False), ({5000: 100, 1000: 100, 500: 100, 100: 100, 50: 100}, True), ({5000: 1, 1000: 0, 500: 0, 100: 2, 50: 0}, True) ] ) def test_false(bills_count_const, expected): atm = ATM(FakeSDK()) atm.bills_count = bills_count_const amount = 1000 res = atm.withdraw(amount) assert res == expected

141

Paylanmış sistemlərin dəstəyi və ya inkişafı sahəsində təcrübəniz varmı?

141

Hansı ölkələrdə iş və ya əməkdaşlıq variantlarını nəzərdən keçirirsiniz?

Junior — Middle
140

```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] == 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 ```

138

İş və ya layihə axtarışınız hazırda hansı mərhələdədir?

Junior — Middle
137

İntervyu edən şəxs namizədin problemin şərtini görüb görmədiyini aydınlaşdırır.

134

Son layihəniz haqqında daha ətraflı məlumat verin: nə idi, hansı vəzifələri yerinə yetirdiniz, məsuliyyət sahəniz nə idi?

133

# Çətinlik # İndi yeni məhsul xüsusiyyəti var: mobil tətbiq vasitəsilə pulun rezervasiyası. # Bunu etmək üçün ATM sinfinə yeni reserve(amount) metodu əlavə etmək lazımdır. Həmçinin, SDK metodlarında HardwareError ehtimalını nəzərə almaq lazımdır.

132
/5