כתיבת קוד — שיעור 10
התנעת פרויקט הדגל — Git, PRD, MVP
כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T2 · בסיסי200 נק'~12 דק'algorithmic
השוואת גרסאות סמנטיות (SemVer)
בפרויקט הדגל אתם מתייגים גרסאות. נתונות שתי מחרוזות גרסה a ו-b, כל אחת סדרת מספרים שלמים אי-שליליים מופרדים בנקודה (למשל "1.2.10"). החזר 1 אם a>b, -1 אם a<b, 0 אם שוות. ההשוואה מספרית מקטע-אחר-מקטע; מקטעים חסרים נחשבים 0 (כך ש-"1.2" שווה ל-"1.2.0").
דוגמאות
compare_versions('1.2.10', '1.2.9') → 1
compare_versions('1.2', '1.2.0') → 0
compare_versions('1.0.0', '1.0.1') → -1
הפתרון נשמר מקומית אוטומטית.
T3 · בינוני350 נק'~25 דק'algorithmic
התאמת תבנית גלוב (.gitignore-style)
ב-.gitignore משתמשים בתבניות עם תווים כלליים. ממש glob_match(p, s) המחזיר True אם התבנית p תואמת את המחרוזת s במלואה, כאשר '*' תואם רצף כלשהו (כולל ריק) ו-'?' תואם תו יחיד בדיוק; כל תו אחר מילולי. חובה יעילות O(|p|+|s|) (two-pointer): מימוש רקורסיבי תמים שמפצל על כל '*' הוא אקספוננציאלי ויתקע ב-timeout.
דוגמאות
glob_match('*.txt', 'file.txt') → True
glob_match('a?c', 'ac') → False
glob_match('a*c', 'abbbc') → True
הפתרון נשמר מקומית אוטומטית.