פורסם ב זה רק קוד, מתכוננות לראיונות

מחשבון כבקשתך -חלק ב'

זמן קריאה: 9 דקות

בחלק א' של פוסט זה הסברתי שאני רוצה לבנות מחשבון שיוכל לקבל קונפיגורציה של קונבנציית כתיבה, ולפתור תרגילים בהתאם.
הרעיון הגיע מהתרגיל  (2+2)2÷8 שהוא ביטוי שיש לו שתי תוצאות שונות בעבור שתי קונבנציות כתיבה שונות.
בחלק הראשון של הפוסט בניתי את המחשבון שלי, ובחלק הנוכחי אני רוצה להוסיף לו קונפיגורציות.

להמשיך לקרוא "מחשבון כבקשתך -חלק ב'"
פורסם ב זה רק קוד, מתכוננות לראיונות

הרצף הארוך ביותר

זמן קריאה: 7 דקות

נתון מערך של מספרים שונים זה מזה, והמשימה היא למצוא את האורך של הרצף הארוך ביותר שניתן ליצור מהמספרים במערך.
לדוגמא –

A = [2, 5, 3, 10, 9, 4] longest_subsequence_length(A) = 4 ([2,3,4,5])

להמשיך לקרוא "הרצף הארוך ביותר"
פורסם ב זה רק קוד, מתכוננות לראיונות

חזקות של 2

זמן קריאה: 3 דקות

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

בדרך כלל אני מנסה להגיע לסיבוכיות הזמן/מקום האופטימלית, אבל תכל'ס זה יכול להיות ממש כיף לפעמים פשוט להתפרע, לצאת מהקופסא, ולחפש דרכים שהם אולי לא יעילות, אבל בהחלט מעניינות לעשות דברים.

להמשיך לקרוא "חזקות של 2"
פורסם ב זה רק קוד, מתכוננות לראיונות

OR XOR AND SHIFT

זמן קריאה: 13 דקות

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

להמשיך לקרוא "OR XOR AND SHIFT"
פורסם ב זה רק קוד, מתכוננות לראיונות

סודוקו משופר

זמן קריאה: 3 דקות

לפני שבועיים העליתי פוסט עם אלגוריתם שמוודא שלוח סודוקו הוא תקין (אתן יכולות לקרוא אותו פה) ולפני כמה ימים הקוראת העירנית @rinaarts הפנתה את תשומת לבי לעובדה שבפונקציה הבסיסית שמוודאה את לוח הסודוקו שלי השתמשתי באלגוריתם בזבזני בסיבוכיות (O(N2, ואף הציעה פתרון יעיל יותר ב-(O(N.

אז קודם כל, תודה לרינה 🙂

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

להמשיך לקרוא "סודוקו משופר"
פורסם ב זה רק קוד, מתכוננות לראיונות

גלידה

זמן קריאה: 4 דקות

חם היום!
כמה חם? כל כך חם שהלכתי לחפש שאלת תכנות בנושא גלידה, והנה מה שמצאתי – 

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

להמשיך לקרוא "גלידה"
פורסם ב זה רק קוד, מתכוננות לראיונות

אנגרמות

זמן קריאה: 8 דקות

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

הדוגמא שנתונה לנו בשאלה היא זו – 

arr = [“cat”, “dog”, “god”, “tca”] find_anagrams(arr) = [[1, 4], [2, 3]]

להמשיך לקרוא "אנגרמות"
פורסם ב זה רק קוד, מתכוננות לראיונות

שקילת מטבעות

זמן קריאה: 17 דקות

מכירות את החידה הקלאסית על המטבעות והשקילות?
אתן מקבלות מספר כלשהו של מטבעות שכולם זהים מלבד אחד, ואתן צריכות למצוא את המטבע השונה במינימום שקילות.
זו חידה שעלתה מספר פעמים אצלינו בארוחות משפחתיות (יש לי הרבה גיקים במשפחה) וכל פעם שהיא עלתה קרו שני דברים – 

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

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

להמשיך לקרוא "שקילת מטבעות"
פורסם ב זה רק קוד, מתכוננות לראיונות

איחוד פגישות

זמן קריאה: 9 דקות

נתונה רשימה של אובייקטים מסוג Meeting.
כל אובייקט מתאר פגישה, ומכיל זמן התחלה וזמן סיום. זמני ההתחלה והסיום הם מספר הבלוקים של חצי שעה אחרי 9 בבוקר.
כלומר, פגישה שמתחילה ב-10 ונגמרת ב-12 תהיה (Meeting(2,6 ופגישה שמתחילה ב-12 ונגמרת ב-13:30 תהיה (Meeting(6,9.
המשימה היא לכתוב פונקציה שמקבלת רשימה לא ממוינת של פגישות ומאחדת אותן כך שכל הפגישות שחופפות בזמנים יאוחדו לפגישה אחת.

להמשיך לקרוא "איחוד פגישות"
פורסם ב זה רק קוד, מתכוננות לראיונות

סודוקו

זמן קריאה: 7 דקות

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

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

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

להמשיך לקרוא "סודוקו"