כתיבת קוד — שיעור 48
סדנת למידה מהירה — טכנולוגיה חדשה תחת לחץ זמן
כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T5 · שיא800 נק'~15 דק'algorithmic⏱ בונוס-זמן
Security — ניתוח לוג התחברויות
תחת לחץ זמן: נתחו לוג התחברויות. logs היא רשימת שורות 'IP STATUS' (STATUS = FAIL/OK). החזירו את כתובת ה-IP עם הכי הרבה כשלונות (FAIL). שובר-שוויון: הכתובת הקטנה לקסיקוגרפית. אם אין כשלונות — None.
דוגמאות
top_failed_ip(['1.1.1.1 FAIL','1.1.1.1 FAIL','2.2.2.2 FAIL']) → '1.1.1.1'
הפתרון נשמר מקומית אוטומטית.
T4 · מתקדם550 נק'~10 דק'debug⏱ בונוס-זמן
Debug מהיר — חיפוש בינארי שבור
חיפוש בינארי זה נכנס ללולאה אינסופית על חלק מהקלטים. מצא ותקן את הבאג במהירות (רמז: עדכון הגבול התחתון). מחזיר אינדקס היעד, או -1 אם לא נמצא.
// הקוד השבור לתיקון
def bsearch(a, t):
lo, hi = 0, len(a) - 1
while lo <= hi:
mid = (lo + hi) // 2
if a[mid] == t: return mid
elif a[mid] < t: lo = mid # באג כאן
else: hi = mid - 1
return -1דוגמאות
bsearch([1,3,5,7,9], 7) → 3
bsearch([1,3,5,7,9], 4) → -1
הפתרון נשמר מקומית אוטומטית.