התהליך כלל ראיון מקצועי פרונטלי עם שני מראיינים. בתחילת הראיון הייתה היכרות קצרה ושאלות על הניסיון שלי ועל פרויקט אישי שהצגתי. לאחר מכן עברנו למספר שאלות חשיבה, אלגוריתמיקה וקוד. במהלך השאלות המראיינים אפשרו לחשוב בקול, נתנו הכוונה ורמזים במידת הצורך והתעניינו בעיקר בדרך החשיבה ובגישה לפתרון.
שאלות מתוך הראיון
שאלת חשיבה על קרונות רכבת ונורות – נדרש למצוא דרך לפתור את הבעיה כאשר נמצאים בתוך רכבת המורכבת מקרונות זהים וניתן להשתמש במצב הנורות כדי להסיק מידע.
שאלת קוד – בהינתן מערך, למצוא את האיבר הכפול הראשון. נשאלתי גם על סיבוכיות זמן וזיכרון ועל דרכים שונות לפתור את הבעיה.
שאלת חשיבה מתמטית – חבל מקיף את כדור הארץ ומאריכים את היקפו במטר אחד. נשאל מה יהיה המרווח שייווצר בין החבל לכדור הארץ והאם הוא מספיק כדי שנמלה תוכל לעבור מתחתיו.
ריאיון ראשון:
1. Copy List with Random Pointer
2. הראו לי פונקציה שהיה צריך לתקן בה משהו פשוט והייתי אמורה לעלות על הטעות ולהגיד להם מה הפונקציה מחזירה (מחזירה את כמות הביטים הדלוקים במספר)
3. לכתוב פונקציה שמקבלת מספר עם 32 ביטים ומשנה את 0-9 הביטים (הראשונים מימין) להיות הביטים 10-19 ולא משנה את שאר הביטים
4. לכתוב struct של צומת ברשימה מקושרת ולכתוב פונקציה שמקבלת מצביע p ומוחקת את כל הצמתים ברשימה שמקיימים current_node == p
ריאיון שני:
1. לכתוב פונקציה שמקבלת מערך ומספר x ומחזירה true אם x נמצא במערך. ואז שאלו כמה השוואות הפונקציה הנ״ל עושה וביקשו שאכתוב את אותה פונקציה שוב עם מספר השוואות קטן יותר.
2. Next Permutation
כתוב פעולות למחלקה, שמטרתה לנהל מחירים של חנות ממתקים.
3 פעולות, כולן צריכות להיות בסיבוכיות O(1)
SET_PRICE(NAME, PRICE) - הקצאת מחיר לממתק קיים / חדש.
GET_PRICE(NAME) - קבלת המחיר של הממתק לפי שם (אם אין, NULL)
SET_ALL(PRICE) - הקניית מחיר חדש לכל הממתקים בחנות, למחיר אחיד. (למשל, כל הממתקים בחנות עולים 5 ש"ח)
הכל חייב להיות בסיבוכיות זמן O(1).
תשובות
הוסף תשובה
|
לצפיה בתשובות
אוגוסט 2026
מקצים בקונסטרקטור מילון (KEY:VALUE) כאשר בVALUE של כל ממתק יש מערך בגודל 2.
הגישה לKEY היא ב-O(1) (מימוש בטבלת גיבוב, למשל DICT של פייתון)
המשתנה הראשון במערך שבתוך הVALUE יהיה המחיר, המשתנה השני יהיה משתנה "זמן" שבו עודכן המחיר.
שומרים 2 משתנים גלובלים במחלקה, PRICE, PRICE_TIME.
ופשוט כל פעם שעושים השמה למחיר בודד, מעדכנים גם את הזמן בו הוא עודכן.
כאשר המשתמש מבקש לעשות GET למחיר בודד, הוא בודק מה יותר עדכני? הזמן המקומי של הממתק או הזמן הגלובלי.
פעולת SET_ALL מעדכנת את המחיר הגלובלי + זמן המחיר הגלובלי.
כמובן ששליפה והכנסה לטבלת גיבוב נעשית בסיבוכיות זמן ממוצעת O(1).
1. לכבות את הביט הדולק הראשון במספר נתון
2. 100 ט'רדים מריצים לולאה של 100 איטרציות שמגדילה מונה משותף ב1. מה הערכים האפשריים למונה בסוף הריצה של כולם?
3. שחלוף מטריצה ריבועית
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2026
1. X -> X&((X-1)^X)
2. הטווח הוא 2 - 100
3. מעבר על אברי המטריצה שמעל לאלכסון והחלפה שלהם עם האיברים המתאימים שמתחתיו
אין לי משהו להגיד על התהליך, די מסודר (מעצבן שמחזירים לך תשובה תוך שבוע+ בין השלבים)
שאלות מתוך הראיון
ראיון ראשון
1. פונקציה שמקבלת 2 מחרוזות שמורכבות מ 'EMH' easy medium hard לכל אות ניקוד אחר (1, 3, 5) צריך להחזיר את המחרוזת עם הניקוד הגדול יותר (לפתור ביעילות)
2. פונקציה שמקבלת מערך מספרים לא ממויין, צריך להחזיר את האורך של רצף המספרים העוקבים הכי ארוך ([4,2,1,3,7,9,8] להחזיר 4 כי 1234)
ראיון שני
1. פונקציה שמקבלת מחזורת תווים, וK כלשהו. צריך להחזיר את כמות התתי מחרוזות שבתוכן כל איבר מופיע בדיוק K פעמים, הפתרון האופטימלי זה עם חלון זז שגדל בK וקטן באיתחול לגודל המינימלי
2. לא זוכר
לא עברתי את הראיון השלישי
הגשתי קורות חיים ותיאמו איתי זום שבו שאלו אותי בעיקר שאלות חשיבה ורצו לראות איך אני פותר דברים, איך אני חושב עליהם יותר מאשר קוד
שאלות מתוך הראיון
דרגנוע נע כלפי מעלה במהירות קבועה.
אדם הולך במעלה הדרגנוע בקצב של:
* צעד 1 בשנייה ומגיע למעלה ב-20 צעדים,
* 2 צעדים בשנייה ומגיע למעלה ב-30 צעדים.
אם אותו אדם ילך בקצב של 3 צעדים בשנייה, כמה צעדים ייקח לו להגיע למעלה?
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2026
הדרגנוע כולל 60 צעדים ונע בקצב 2 צעדים בשנייה. הליכה של 3 צעדים בשנייה תיקח 12 שניות, שהן 36 צעדים.