וכל פעם הייתי מעלה אותו בחזקת 2
ועושה השוואה בין המשתנה עזר לבין x ברמה של השוואה בין ביט וביט
כלומר אם יש לי את המספר
x=1100
ואת המשתנה עזר נגיד x=1000
אז הייתי רץ מצד שמאל לימין ומריץ את bitAtIndex עבור כל ביט של x ושל המשתנה עזר בהתאמה. אם עבור שניהם קבלתי מ bitAtIndex ערך true אז אני יודע שהספרה זהה בשניהם ואני יכול להמשיך ולבדוק בהתקדמות לכיוון ימין. אם אני מזהה אי שוויון - אני מפסיק את בדיקת הביטים ומעלה את משתנה העזר בחזקת 2 וחוזר על הכל מהתחלההבעיה רק איך לזהות כשעברנו עם משתנה העזר את המספר הנתון
נגיד
x=10
ומשתנה העזר כבר הגיע לערך 16
פה צריך להבדיל איך כבר המקרה אבוד, ו x לא יהיה חזקה של 2
הקו מחשבה הזה הגיע לי מקורס שעשיתי שהוא דיי דומה למערכות ספרתיות. דומה לשיטה של השוואת מספרים גדולים בייצוג בשיטת מנטיסה
פתרון מסורבל ומגעיל אבל זה מה שאני עולה לי לראש כרגע.
לא העלו לכם פתרון? בדרך כלל מעלים פתרון לפני פרסום הציונים