Mellanox – חידות הגיון ותכנות

מאת JobHunt

ראיון מחולק לשלושה חלקים:

1) שני מראיינים שואלים שאלות עליך.
2) אחד מהם מספר על החברה.
3) חלק שלישי זה שאלה לוגית ושאלת קוד:

1) שאלה לוגית:

יש שלושה כדים אשר מכילים שני כדורים. צבעי הכדורים יכולים להיות:

אדום אדום
אדום שחור
שחור שחור

כדים הנ"ל אם תויות אשר כיתוב עליהם משקר.
כד ראשון:
כיתוב על התוית – אדום אדום
כד שני:
אדום שחור
כד שלישי:
שחור שחור

צריך למצוא מינימום הוצאות כדי לדעת איזה כדורים נמצאים בכדים בוודאות.

לבדיקת התאמה

פתרון:

יש שלוש פתרונות לתרגיל הזה וצריך להציג אותם וכמובן להסביר למה בחרתם בפתרון הזה, מה המינימום ההוצאות בכל פתרון.

פתרון ראשון:

נניח הוצאנו כדור אדום מכד ראשון:

בכד ראשון יהיה אדום שחור
בכד שני – שחור שחור
בכד שלישי – אדום אדום

אם הוצאנו מכד ראשון כדור שחור:
כד ראשון – שחור שחור
כד שני – אדום אדום
כד שלישי – אדום שחור

זאת אומרת במקרה הזה יהיה שני הוצאות כדי לדעת איזה כדורים יש בשאר הכדים וזה סיכוי של 50 על 50.

פתרון שני:

דומה לפתרון הראשון רק פה אנחנו צריכים הוצאה אחד. וזה סיכון 50 על 50.

פתרון שלישי (פתרון הנכון):

אנחנו נוציא כדור אדום מכד שני ולכן:

כד שני – אדום אדום
כד ראשון – שחור שחור
כד שלישי – אדום שחור.

המלצות:

תחשבו על תרגילי לוגיקה היטב, על תמהרו (מה שעשיתי), זה לא אמור לקחת יותר מ-5-10 דקות.

2) שאלה על קוד:

נתונה הגדרה של הפונקציה הבאה –
char *str pbreak(str1*, str2*);
ומספר דוגמאות לקריאת פונקציה –
str1 = 'Hello Mellanox!';
str2 = '123!';
str2 = '123';
str2 = 'olle';

עליכם להסביר מה מקבלת ומחזירה פונקיה ומה תהיה ב-str2 לאחר שפונקיה תסיים לעבוד.
גם כן צריך להסביר כל שלב שאתם עושים.

אחרי זה מבקשים לכתוב פונקציה זו ב-C או ב-Python בכמה שפחות שורות קוד.
צריך גם להסביר סיבוכיות למקרים ספיציפיים שיכולים לשאול.

לבדיקת התאמה