ראיון טלפוני וראיון במחשב של 3 שאלות במשך חצי שעה
צריך לכתוב קוד בכל שפה שרוצים ולהסביר על הלוגיקה שלו
שאלות מתוך הראיון
לממש מחסנית עם פעולות push, pop, getmin בזמן ריצה של קבוע לכל הפעולות
תשובות
הוסף תשובה
|
לצפיה בתשובות
אפריל 2018
יש הרבה פיתרונות לזה :
אפשר עם מחסנית עזר, אפשר עם רשימה מקושרת. הם עומדים בזמן הריצה אבל יקרים קצת מבחינת סיבוכיות מקום. יש פיתרון מיוחד שסיבוכויות המקום שלו היא גם בזמן קבוע
דצמבר 2019
בפתרון ההוא הסיבוכיות מקום שלו שווה לאחרים. אם אתה מתכוון לפתרון שמשתמש באותה מחסנית רק שכל פעם דוחפים פעמיים את המינימום. הוא יכול להיות טוב אם אומרים לך שאסור להשתמש במבנה נתונים נוסף
אוקטובר 2020
פתרון ב- (O(1 מקום נוסף:
https://www.geeksforgeeks.org/design-a-stack-that-supports-getmin-in-o1-time-and-o1-extra-space/
שאלה בודדת עם כמה סעיפים
1. כתוב ברקורסיה סדרת פיבונצי
2. מה הגרף של הסדרה
3. כמה מקום על המחסנית צריך
4. הגנה על הפונקציה.
5. כתוב את התוכנית באופן מסורתי.
6. כתוב את התוכנית בשימוש עם כמה שפחות זיכרון נדיף
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2018
2. אקפוננציאלי
3. כמספר העלים והצמתים בעץ.
4. אסור לקבל ערך שלילי, או ערך שיגרום לחריגה בתוצאה
6. צריך רק לשמור על Xn, Xn-1, Xn-2
1. כתוב קוד שמקבל מחרוזת עם סוגריים (סוג אחד של סוגריים) ומחזירה אמת אם הסדר של הסוגריים תקין, ושקר אחרת.
2. ספר לי מה עשית בעבודה הקודמת שלך.
3. נתונה מטריצה, ונתנה נקודת התחלה ונקודת סוף, בחלק מהמשבצות במטריצה יש 1 ובשאר 0. כתוב תכנית שבודקת האם ניתן להגיע מנקודת ההתחלה עד לנקודת הסוף, מבלי לעבור במשבצות בהן מסומן 1. ניתן ללכת לכל הכיוונים - כולל באלכסון. הם מתארים את המשבצות עם 1, כ״מפלצות״, מדובר בסוג של פאקמן. (אני פתרתי את זה עם רקורסיה)
4. נתון מבנה נתונים עם 3 פעולות - set(key,value), get(key), del(key). כתוב קייסים של בדיקות.
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2018
4. תכתבו את כל הקייסים הברורים - כמו סט וגט לאיבר בודד, וסט ודליט ואז גט לאיבר בודד, תשאלו כמה איברים ניתן להכניס. נניח ניתן להכניס 1000 איברים למבנה, אז תעשו קייס כזה : 1000 סט, 1000 גט (לבדוק שקיבלנו את מה ששמנו במבנה עבור כל מפתח), 1000 דליט, 1000 גט - נצפה לקבל חריגה בכל אחת מהגישות. שוב 1000 סט - לבדוק שאחרי המחיקות ניתן להכניס למבנה איברים, וכו׳. צריך להיות יצירתי בבדיקות.
אוקטובר 2019
1. ניתן למימוש בעזרת counter (שיאותחל לאפס). בכל פעם שנתקל בפתח סוגריים נגדיל את הcounter ב1. ובכל פעם שנתקל בסגור סוגריים נקטין את הcounter ב1. נרצה לוודא שבמהלך הריצה לא מתקיים שהcounter הופך לשלילי וכן שבסיום הריצה הוא שווה ל0.
מרץ 2021
1. שימוש במחסנית - כשנתקלים בפותח עושים push וכשנתקלים בסוגר עושים pop ומוודאים שהסוגר והפותח הם מאותו סוג של סוגריים (מסולסלים, מרובעים וכו..).
אם בסוף המילה המחסנית ריקה, ניצחנו
1. לכתוב פונקציה שמקבלת קובץ. הפונקציה צריכה לקרוא את הקובץ ולהחזיר 2 מספרים: מספר השורות שמכילות את המחרוזת "cat" ומספר השורות שמכילות את המחרוזת "dog". אבל לא שורות שמכילות את 2 במחרוזות.
2. לכתוב פונקציה שמקבלת רשימת Integers ומחזירה רשימה מסוננת שמכילה רק את המספרים מהרשימה המקורית שמתחלקים ב3 או ב 5 אבל לא בשניהם.
לדוג: func([6,10,12,15,17,20,30]) ==>[6,10,12,20,]
3. לכתוב פונקציה שמקבלת dictionary שמכיל מיפוי של מילים וציונים שלהם ומחזירה את הציון של המילה (Key) הכי גדול ב dictionary. לדוג':
}"triger":3, "elephant:17, "lion:42} הפונקציה תחזיר 17
(נוצר קצת בלאגן בגלל מקלדת עברית/אנגלית.. זה אמור להיות key":value")
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2018
גם לי היו את אותן שאלות, קצת לא ברור בניסוח של שאלה 3 - צריך להחזיר את הציון של המילה הכי ארוכה במילון.