GammaCyber

כתיבת קוד — שיעור 49

סדנת פרזנטציה — סימולציית ראיון מקצועי

כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.

T5 · שיא800 נק'~15 דק'algorithmic⏱ בונוס-זמן
Live-Coding — מיזוג מרווחים
שאלת ראיון קלאסית. נתונה רשימת מרווחים [start, end]; מזג את כל החופפים והחזר רשימה ממוינת של מרווחים לא-חופפים. מרווחים שנוגעים (למשל [1,4],[4,5]) נחשבים חופפים.
דוגמאות
merge_intervals([[1,3],[2,6],[8,10],[15,18]]) → [[1,6],[8,10],[15,18]]
merge_intervals([[1,4],[4,5]]) → [[1,5]]
פתרון-ייחוס Live-Coding — מיזוג מרווחים ›
def merge_intervals(intervals: list) -> list: if not intervals: return [] it = sorted(intervals) res = [list(it[0])] for s, e in it[1:]: if s <= res[-1][1]: res[-1][1] = max(res[-1][1], e) # חופף -> מיזוג else: res.append([s, e]) return res
הפתרון נשמר מקומית אוטומטית.
T4 · מתקדם550 נק'~12 דק'algorithmic⏱ בונוס-זמן
Live-Coding — סיבוב מטריצה 90°
שאלת ראיון נפוצה. נתונה מטריצה ריבועית n×n; החזר אותה מסובבת 90 מעלות עם כיוון השעון. (רמז: התא [i][j] בתוצאה מגיע מהתא [n-1-j][i] במקור.)
דוגמאות
rotate90([[1,2],[3,4]]) → [[3,1],[4,2]]
rotate90([[1,2,3],[4,5,6],[7,8,9]]) → [[7,4,1],[8,5,2],[9,6,3]]
פתרון-ייחוס Live-Coding — סיבוב מטריצה 90° ›
def rotate90(m: list) -> list: n = len(m) return [[m[n-1-j][i] for j in range(n)] for i in range(n)] # 90° עם כיוון השעון
הפתרון נשמר מקומית אוטומטית.