Verint – QA

מאת JobHunt

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

המערכת שהם מתארים שם היא כזאת :
יש לך מידע שנשלח שהוא או מסוג SMS או מסוג EMAIL המערכת יודעת לאבחן בין 2 המקרים ולפיכך לשלוח אותם לטבלה הנכונה להלן ה DataBase Server .
סדר הפעולות שהמידע מועבר הוא :
1.Raw Data
2.Filtering Server – Email\SMS
3.Decrypt Server
4.DataBase Server
5.Client SQL Query Screen .

לבדיקת התאמה

הלקוח יכול לשלוף מידע ע"י שאילתות משרת ה Database עי שעה ותאריך.
1.עליך לבנות מסמך בדיקות
2.עליך להבין כמובן את המערכת ולתאר אותה לבוחן …
זהו +-
3.יש עוד כמה שאלות שטויות על מה קורה אם …

Verint – פיתוח

מאת JobHunt

שאלה ראשונה:

סעיף 1 ,בהינתן מספר unsinged int צריך למצוא את מספר הביטים הדלוקים , נגיד אם אתה מקבל את המספר 2 אתה מחזיר 1 , אם אתה מקבל 3 אתה מחזיר 2 , וכו׳ אין הגבלה על זמן ריצה , מותר להשתמש לכל היותר ב 4 משתנים .
סעיף ב , צריך למצוא את אותו הדבר רק עכשיו זמן ריצה ב o(1) ואין מגבלה על מקום בזיכרון .
סעיף ג , בכמה זכרון השתמשת בסעיף קודם ?
תנסה להקטין אותו ל O(M/c) כך ש M סה״כ מקום בסעיף קודם ו c זה מספר קבוע . וכמובן זמן ריצה נשאר o(1)

שאלה 2 :
תממש את הפונקציות enqueue ,dequeue של טור בעזרת מחסנית (יש מבחנים שמבקשים 2 מחסניות) ולא מבנה נתונים אחר .

שאלה 3 : תממש מבנה נתונים שמחזיק מספר בצורת FIFO ותממש את הפונקציות void init ( int capacity) שמאתחלת את מבני הנתונים , את set(int i) מכניסה למבנה שלך , ו get() מחזירה מספר , אם הגעת לסוף מחזירים -1 , ו size() מחזירה את גודל המבנה .
סעיף ב , הקוד של הסעיף הקודם מריצים אותו יותר מ ת׳ריד אחד , תדאג שהקוד שלך מסונכרן

Verint – מפתח ב-#C

מאת JobHunt

מבחן בכתב (שעה וחצי), 5 שאלות.

1. נותנים לך ארגומנט הבנוי מסוגריים מהסוגים הבאים: (){}[]. צריך לזהות מתי ארגומנט לא חוקי. דוגמה לארגומנט חוקי: ( [ ]{ } ). דוגמה לארגומנט לא חוקי: ({)}

2. נתונה רשימה מקושרת. N חוליות. לכל חוליה יש ערך שלם (int) ואת ה-next שלה ברשימה. צריך להוריד את חוליה X (לדוגמה) מהרשימה. יש לך את הפוינטר ל-head, ל-end ול-X. אסור שזמן הריצה יהיה O(n)

3. קיימת מטריצה בגודל nXm יש לתת אלגוריתם שעבור כל ערך 0 בתא מסוים (לדוגמה: תא [i,j]) כל הערכים באותה שורה (i) ועמודה (j) יאופסו גם הם. זמן ריצה O(n*m)

4. הם מתארים תוכנה ומבקשים לצייר דיאגרמת קלאסים שלה

5. שאלת קוד ב-#C. צריך לתקן טעויות.

את התשובות ניתן לכתוב בפסאודו-קוד. אין דרישה לכתיבה ב-#C

תשובות מוצעות:

שאלה 1:
קלאסית, משתמשים במחסנית.
אפשר לראות רעיון לפתרון כאן:
http://www.java2s.com/Code/Java/Collections-Data-Structure/BracketChecker.htm

שאלה 2:
שאלה נפוצה, הרעיון בה הוא להעתיק לאיבר הנוכחי את התוכן והלינק של האיבר הבא, ובעצם למחוק את האיבר הבא (שאת התוכן שלו העתקת לנוכחי X וכך התוכן אותו ביקש ממך למחוק נמחק). התשובה שכבר נכתבה בדיון נכונה, צריך רק להתייחס למקרה קצה בוא X וא האיבר האחרון (גם צויין בתגובה אחרת).

שאלה 3:
נראה לי הצלחתי לחשוב על פתרון:
קצת קשה להסביר במילים, אבל העקרון כזה – בונים שני מערכי עזר בגודל n ו-m, אחד מיועד לציר X ושני לציר Y.
פעם אחת סורק את המטריצה, שומרים באיזה קואורדינה בX ו-Y יש 0 (נניח 2 מערכים ושומרים באינדקס המתאים) זה יוצא mxn.

לאחר מכן רץ עוד פעם על המטריצה מההתחלה, ומשווה כל תא מול האינדקס המתאים במערכים, לבדוק אם יש 0. אם יש, משווה את התא ל-0.