linked in

שלח פרופיל עכשיו >

ההרשמה נקלטה

בהצלחה!

אתגר Javascript נושא פרסים ומשרה

25/05/2015 17:05:29
אתגר Javascript נושא פרסים ומשרה תמונה: pixbay

לא חסרים מתכנתים ששולטים ב-JavaScript, אבל כאלה שמביאים את הקידוד ב-JS לדרגת אמנות קשה למצוא.

ב-hola, החברה שמאיצה את הגלישה לשיאים חדשים, סידרו לכם הזדמנות משתלמת להוכיח את כישוריכם העילאיים.

מי שיצליחו לפצח את האתגר הבא עם המימוש היצירתי, החכם והיעיל ביותר יזכו בפרסים כספיים שווים:

מקום ראשון: $1,500
מקום שני: $1,000
מקום שלישי: $500
חביב הקהל (הפתרון המקורי ביותר): $350

ואם אתם גם מחפשים עבודה עכשיו, הרווח שלכם כפול! המצטיינים באתגר יזומנו למיונים לתפקיד מוביל בחברה.

עכשיו הגיע הזמן להתחיל לעבוד על הקוד:

האתגר
עליכם לבצע גנרליזציה של רשימה מקושרת (linklist) ב-Node.js. ב-Node.js קיים יישום (implementation) עתיר ביצועים ובעל תקורת זיכרון נמוכה (high performance, low memory overhead) של רשימה מקושרת. יישום זה הוא ספציפי (פריטים עומדים {idle items} בלבד), ולא מתיר לרשימת האב (list parent) לכלול שתי רשימות או יותר באובייקט רשימת האב (parent list object). משימתכם היא להפוך את היישום לגנרי בלי להשפיע לרעה על ביצועיו, ולכלול מבחנים המראים זאת. וזה הקוד - בהצלחה!

 

function init(list) {
list._idleNext = list;
list._idlePrev = list;
}
exports.init = init;

// show the most idle item
function peek(list) {
if (list._idlePrev == list) return null;
return list._idlePrev;
}
exports.peek = peek;

// remove the most idle item from the list
function shift(list) {
var first = list._idlePrev;
remove(first);
return first;
}
exports.shift = shift;

// remove a item from its list
function remove(item) {
if (item._idleNext) {
item._idleNext._idlePrev = item._idlePrev;
}
if (item._idlePrev) {
item._idlePrev._idleNext = item._idleNext;
}
item._idleNext = null;
item._idlePrev = null;
}
exports.remove = remove;

// remove a item from its list and place at the end.
function append(list, item) {
remove(item);
item._idleNext = list._idleNext;
list._idleNext._idlePrev = item;
item._idlePrev = list;
list._idleNext = item;
}
exports.append = append;

function isEmpty(list) {
return list._idleNext === list;
}
exports.isEmpty = isEmpty;

 

סיימתם? שלחו את הקוד עד ה-30/6 למייל: challenge@seev.co.il

נא להעביר את הפתרון בקובץ ולציין בגוף המייל שם מלא ומספר טלפון.

ניתן לשלוח מספר פתרונות, כשהטוב מביניהם ייחשב. המנצחים יוכרזו ב-10/7.

 




חזרה לבלוג >      חיפוש משרות >