![]() |
שפת C - פיתרון אלטרנטיבי לבעיה?
שלום!
קיבלתי לש.ב בשפת C את השאלה הבאה: ציטוט:
ds4$$$444 abc$xxx$yyy$zzz אני פתרתי את זה כך: PHP קוד:
אשמח לדעת אם יש למישהו פיתרון טוב יותר או פשוט יותר. תודה! |
למדתם פונקציות רקורסיביות?
|
לא למדנו.
|
תודה על האתגר לשעת ערב זו ;)
למיטב הבנתי את השאלה, אתה צריך לטפל גם במקרה כזה:
ab$abe$ab$ab$adsg כלומר יש מחרוזת סימטרית... פשוט לא עם ה$ ה-1. כמוכן אין סיבה ממשית לרוץ על כל המחרזות של 100 תווים (למשל) אם מצאנו את השרשרת ב10 הראשונים... הנה מימוש שלי: PHP קוד:
פלט: קוד:
yury@moon ~ $ gcc sim.c -o sim |
השימוש במצביעים קצת בלבל, כיוון שעוד לא למדתי את זה, אך תודה על הארת העיניים בנוגע לדוגמה שלך, אני אפתור את התרגיל מחדש.
אשמח לפיתרון שאוכל להבין :) תודה! |
תגיד איזה נושאים למדתה עד עכשיו כי אפשר לפתור את זה בהרבה דרכים...
|
ציטוט:
בלי מצביעים: PHP קוד:
כל עוד ok הוא שקר ולא הגעת לסוף המחרזות בצע: בדוק תו-תו: אם התו הנוכחי הוא התו $: אם זה התו הראשון מהסוג $ שמור את מיקומו למשתנה fst אחרת (כניראה זה התו השני שאנחנו מוצאים... המיקום הנוכחי הוא אמצע המחרוזת הסימטרית) תו ה-$ הבא צריך להיות ב: מיקום נוכחי פחות המיקום של התו הראשון (ההפרש בין הראשון לאמצע) ועוד המיקום הנוכחי. אם המיקום הבא לא חורג מאורך המחרוזת, בדוק האם התו אכן שם. אם כן שנה את ok ל1. אם לא, הכנס את המיקום הנוכחי למשתנה fst. (ז"א מבחינתנו זה עכשי והתו הראשון) |
כל הזמנים הם GMT +2. הזמן כעת הוא 04:42. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ