כתיבת קוד ב-C (על דף) שמזהה עבור קלט של שתי מחרוזות האם מחרוזת אחת היא rotation של השניה. למשל, hello ו-elloh יחזירו true, אבל hello ו-hlelo יחזירו flase.
אלו השאלות שהיו לי בראיון האחרון לפני כחודש ב- PTC לפיתוח C/C++.
שיהיה בהצלחה !!
שאלות מתוך הראיון
נתון עץ וצריך לממש Node. אח"כ צריך לממש פונקציה שבודקת מה גובה העץ.
לבסוף היה צריך להגיד מה הסיבוכיות מבחינת זמן ומבחינת זכרון.
תשובות
הוסף תשובה
|
לצפיה בתשובות
פברואר 2019
ניתן לפתור ברקורסיה, כל קודקוד מחזיר את ערך המקסימום של הרקורסיה על בניו + 1. אם הגעת לNULL תחזיר אפס (כל עץ ריק גובהו אפס - תנאי העצירה). ריצה וזיכרון O של h כך שh זה גובה העץ.
מרץ 2022
די רצים על כל צומת , לא ? לא יהיה מדוייק יותר להגיד O(n(?
ראשית אציין כי המראיין היה אדם נחמד (בן כ 40)
הראיון כלל 2 שאלות תאורטיות + 7-8 שאלות מעשיות (מבחן).
שאלות מתוך הראיון
שאלות תאורטיות:
1. מה ההבדל בין Compiler ל Linker? מי אחראי על ה define?
2. להסביר מה זה מצביע לפונקציה? למה צריך את זה? ולתת דוגמה.
שאלות מעשיות (מבחן עם 7-8 שאלות - 45 דק', שאלות מהקל לכבד):
1. מה לא תקין בקטע קוד מסוים?
2. מהו הפלט בקטע קוד נוסף? (לשים לב שהפרמטר מועבר By value).
3. לבחור איזו אפשרות טובה יותר? בין 2 תנאים if (יש לבחור בזו שקודם בודקת שהמצביע לא NULL ורק לאחר מכן בדיקה של תוכן המצביע).
4. למממש את הפונקציה strncmp.
5. מציאת הגובה המקסימלי של עץ בינארי.
6. ביצוע (void Swap(void **a, void **b.
7. לממש פונקציה שמחזירה Vector של int עבור המסלול הגבוה ביותר בעץ (מימוש ב ++C, ללמוד STL).
תשובות
הוסף תשובה
|
לצפיה בתשובות
אפריל 2018
תשובה לשאלה 6 (בסוף העמוד):
https://stackoverflow.com/questions/2232706/swapping-objects-using-pointers
תשובה לשאלה 7:
להלן החותמות של הפונקציות - לחפש באינטרנט את התשובה (אל תתעצלו, זה חשוב):
(vector find_max_path(Node *root
(vector find_max_path_rec(Node *root, int &sum
ראיון אישי עם ראש צוות.
בהתחלה יש הסבר על מהות החברה, רצוי לקרוא עליה לפני הראיון.
לאחר מכן, כ 2 שאלות תאורטיות, ואז מבחן על דף עם 7-8 שאלות מהקל לכבד (45 דק' פתרון).
** המראיין היה אדיב ונחמד (בן כ 40-45).
שאלות מתוך הראיון
שאלות תאורטיות:
1. מה ההבדל בין Comipler ל Linker.
2. מה זה מצביע לפונקציה? למה צריך את זה? ולתת דוגמה לשימוש.
3. מבחן של 7-8 השאלות (מהקל לכבד):
* מציאת חלקים בעייתיים בקוד (לא קשה).
* תיאור מהו הפלט בקוד (לשים לב - העברת פרמטר By value).
* תיאור מה ההבדל בין 2 התניות שונות עם סימן || ביניהם - הפתרון הוא שאחד מהם מנסה להיכנס לתוכן של מצביע ריק, והשני בודק תחילה האם המצביע בכלל שונה מ NULL.
כמובן שקודם יש לבדוק כי תוכן המצביע שונה מ NULL ורק אז יש להמשיך לבדיקת תוכן המצביע.
* מימוש strncmp.
* מימוש פונקציה שמוצאת את גובה העץ.
* מימוש של swap בין 2 מצביעים *void.
* החזרת vector של מסלול הצמתים במסלול של גובה העץ (מימוש בשפת ++C) - מומלץ לחזור על STL וכיצד להשתמש ב Vector (שאלה קשה מאוד - ממליץ ללמוד בע"פ את התשובה, בגללה נפלתי בראיון).
בהצלחה :)
תשובות
הוסף תשובה
|
לצפיה בתשובות
אפריל 2018
בסוף העמוד - רק 2 פרמטרים
https://stackoverflow.com/questions/2232706/swapping-objects-using-pointers
מימוש של סינגלטון, מימוש של מחלקה shape וירושה ממנה, מספר שאלות קוד קצרות ב-c.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2018
מימוש סינגלטון:
מגדירים את הקוסטרקטור של המחלקה כprivate, מחזיקים במחלקה משתנה יחיד מסוג המחלקה הזו ויוצרים פונקציה סטטית שמאתחלת אותו פעם אחת ואז מחזירה אותו בכל פעם