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

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

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

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

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

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

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

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

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

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

Flask

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

התחלתי לאחרונה להתנדב ב-shecodes בתור מנטורית פייתון, ואני נהנית מכל רגע.

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

מהרגע הראשון ידעתי שאני רוצה להראות לחניכות בסניף משהו מגניב.

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

חזקות של 2

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

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

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

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

OR XOR AND SHIFT

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

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

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

סודוקו משופר

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

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

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

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

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

גלידה

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

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

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

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

אנגרמות

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

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

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

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

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

שקילת מטבעות

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

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

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

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

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

איחוד פגישות

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

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

להמשיך לקרוא "איחוד פגישות"