ארבעה ראיונות טכנים: ראיון טלפוני, ראיון פרונטלי, עבודת בית ועוד ראיון פרונטלי.
שאלות מתוך הראיון
לכתוב אלגטריתם ומימוש:
בהינתן קלט כתוב תוכנית שתחזיר בכל שלב את 10 החיפושים הכי שכיחים. (כמו שמוצג כשמתחילים לכתוב במנוע חיפוש)
לדוגמה:
עבור הקלט:
"boo"
נתחיל בלהציג את 1- הכי שכיחים עבור "b, אחר כך "bo", אחר כך "boo"
1. להפוך רשימה
2. נתון מערך בגודל n. המערך נחשב ואלידי רק אם כל המספרים מ1 עד n מופיעים בו. ממש פונקציה שתבדוק אם מערך ואלידי בזיכרון וזמן ליניארי.
3. נתון מערך מספרים. מצא אינדקס k , שיחלק את המערך לשני חלקים R,L, כך שערך הביטוי : |max(L)-max(R)| הוא מקסימלי.* max(L) הוא המספר הכי גבוה בחלק L. *האיבר הראשון בחלק R, הוא האיבר המוצבע על ידי האינדקס k.
תשובות
הוסף תשובה
|
לצפיה בתשובות
אפריל 2018
3. k יכול להיות רק 2 או n-2
אוגוסט 2018
התשובה שכתובה פה ל-3 אינה נכונה.
נסתכל על המערך:
[1, 1 ,1 ,1 ,1 , 2-, 1,|| 1, 1, 1, 1]
כאן k=4 או n-4 (סימנתי את החיתוך ב-||)
פברואר 2022
2. לסכום במקביל את האינדקס והערכים ותוך כדי אפשר לבדוק ולעצור אם כבר הערכים גדול יותר אחרת לבדוק בסוף אם שווה
1. כתוב פונקציה שמקבלת שורש של עץ בינרי ובמחזירה אמת אם העץ הוא עץ חיפוש תקין (לכל נוד בעץ, הערך שבנוד גדול מכל הערכים בנודים שבתת עץ השמאלי שלו ויותר קטן מכל הערכים שבנודים שבתת עץ הימני שלו) ושקר אחרת. יתכן שהעץ לא מאוזן, זה לא משנה. אחרי זה הוא שאל על סיבוכיות- מקרה הכי טוב והכי גרוע.
2 . כתוב פונקציה שמחזירה פרמוטציה אקראית של סדרת המספרים: 0 עד 9. האקראיות צריכה להיות יוניפורמית, כלומר הסבירות לקבל פרמוטציה כלשהי, שווה לסבירות לקבל כל פרמוטציה כלשהי אחרת.
3. קיימים שני תהליכים, תהליך ראשון כותב מידע לתוך מערך כלשהו. ואנחנו רוצים שלאחר שהתהליך הראשון סיים לכתוב, התהליך השני יוכל לקרוא את מה שהתהליך הראשון כתב. איך ניתן לעשות זאת ?
4. נתונה מחרוזת, הסבר איך אפשר למצוא את הפלינדרום הארוך ביותר שהוא תת מחרוזת שלה.
5. נתון קובץ גדול עם n מילים. איך בצורה הכי מהירה ניתן למצוא את הk מילים הכי נפוצות בקובץ. בהתחלה עם מעבד אחד. ואחרי זה שאל על איך נעשה את זה ביעילות עם מספר מעבדים
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2018
תשובה ל3: על ידי כך שהתהליך הראשון יכתוב לקובץ, והתהליך השני יקרא אחרי זה מאותו קובץ (אני חושב שאפשר להגיד שזה כמו להשתמש בpipe)
הוא גם שאל אותי: אם התהליך הראשון ישלח לתהליך השני את הכתובת (הוירטואלית) של תחילת המערך, האם זה יעזור ? אז אמרתי לו שלא, בגלל שמדובר בשני תהליכים שוניםולכן המרחבי זיכרון שלהם שונים, ויתכן שאותה כתובת עבור התהליך השני מצביעה למקום אחר לגמרי בזיכרון ואם התהליך השני יקרא מאותה כתובת הוא פשוט יקרוס או שיקרא מידע לא נכון בכלל.
תשובה ל4: לעבור על המחרוזת ולבדוק מכל אות ומבין כל שתי אותיות את הפלינדרום הכי ארוך שמהמרכז הזה ניתן להגיע אליו - אם לא הבנתם פשוט חפשו באינטרנט)
תשובה ל5: עם מעבד אחד, הדרך הטובה ביותר היא : לייצר map שימפה ממילה לכמות המילים שבמסמך. ואז להשתמש בערימת מינימום בגודל k ומעבר על שאר המילים שבמיפוי. במקרה שאפשר להשתמש במספר מעבדים : להשתמש במפ-רדיוס ! וכמובן להסביר איך.
התהליך כולל מבחן ממוחשב שיש למלא בבית, במשך שעתיים - 4 שאלות. לאחר מכן, אם עוברים את המבחן מוזמנים לראיון.
שאלות מתוך הראיון
שאלה מתוך המבחן הממוחשב: בהנתן מערך עם N ערכי integer, לכתוב אלגוריתם שיחזיר את המספר החיובי השלם הקטן ביותר שלא מופיע במערך. על האלגוריתם לרוץ במקרה הגרוע בO של N
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2018
בהנחה שמותר מערך עזר בגודל N והמערך הנתון אינו ממוין
1.ניצור מערך בגודל N ונעבור על המערך הראשון ועבור כל תא נבדוק אם הוא גדול מ0 אז נסמן בתא שלו במערך החדש 1(לדוג' מהמערך הראשון קיבלנו בתא 3 את המספר 9 אז במערך החדש במיקום 9 נסמן 1) זמן ריצה של הלולאה הזאת היא N כי עוברים על כל המערך
2.נעבור על המערך החדש והתא הראשון שיהיה בו 0 נחזיר את האינדקס של התא, במקרה הגרוע N אם יש את כל האיברים לפני
פברואר 2019
מכניסים את כל המספרים שבתוך המערך להאש.
עוברים על כל המספרים מ 1 ומחפשים אם נמצא בהאש, הראשון שלא נמצא מחזירים אותו
אפשר לעשות את זה גם אם פונקצית חלוקה אך זה הרבה יותר מסובך
עוסקת בפיתוח, תכנות, שיווק ומתן זיכיונות למערכות הפעלה למחשבים, פתרונות תוכנה למגזר הפרטי והעסקי ומגוון פלטפורמות משולבות חומרה ותוכנה. בתחום המוצרים ללקוחות משווקת החברה מערכות הפעלה לשרתים, מחשבים אישיים ומחשבי כף יד.