עבור לתוכן

רקורסיה - שאלה

Featured Replies

פורסם

אני צריך לכתוב פונקציה שמקבלת 2 מחרוזות S1 ו-S2 ומחזירה true אם S2 היא תת מחרוזת של S1 ו-false אם לא.

זה מה שכתבתי עד עכשיו:

אני נותן לינק לרשת לקוד שלי כי כבר מאתמול אני לא מצליח לכתוב פוסט שיש בו קוד: http://www.pastebin.ca/2536950

אני שולח לפונקציה 2 מחרוזות: heyl ו-el

לאחר שה-e מושווה מול ה-e של המחרוזת S2 מגיע התו y ובגלל שהוא לא נמצא אני רוצה להתחיל מחדש ולשלוח לפונקציה את המחרוזות המקוריות אבל כבר שיניתי אותם אז חשבתי להשתמש בהעמסת יתר אבל בשאלה רשום בפירוש שאם אני לא ישתמש בהעמסת יתר והתשובה שלי נכונה אני יקבל את מלוא הנק' אז אני לא רוצה להתשמש בהעמסת יתר אבל לא מוצא דרך אחרת.

נערך על-ידי falukky

פורסם

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

פורסם
  • מחבר

זו התשובה שלי, אני שולח את s1 ו-s2 שבהם אני לא נוגע לכן יחד איתם אני שולח גם את s3 ו-s4 שאיתם אני עובד:

http://textuploader.com/10ru

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

http://s10.postimg.org/v3ifj677s/rerr.jpg

נערך על-ידי falukky

פורסם

ה-if הראשון שלך קצת מוזר (תחשוב שנייה על הלוגיקה מאחוריו). הקוד בעיקר מאוד מבלבל (מה המשמעות של כל אחת מ-4 המחרוזות? למה אתה משווה בין s1 ל-s4?)

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

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

נערך על-ידי שניצל

פורסם
  • מחבר

4 המחרוזות הם 2 המקוריות שבהם אני לא נוגע (2 הראשונות) וה-2 הבאות שאיתם אני מתעסק.

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

ה-if הראשון הוא במקרה שאני סיימתי לבדוק את התת מחרוזת החשודה והיא נגמרה (שורה ריקה) או שגם היא וגם המחרוזת הם שורות ריקות ואז זה בעצם אומר שאחרי שעברתי תו תו והם היו שווים אז היא תת מחרוזת ואז אני מחזיר true

ההשוואה בין s1 ל-s4 הייתה טעות, זה אמור להיות בין s3 ל-s4, ב-s1 וב-s2 אני לא נוגע.

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

נערך על-ידי falukky

פורסם

אז תן למחרוזות שמות בהתאם, לא סתם s1,s2,s3,s4.

הבעיה ב-if היא לא התנאי עצמו, אלא הלוגיקה עצמה שלא הגיונית (ה-andים וה-orים). תחשוב על זה.

תנסה להריץ את הפונקציה על המחרוזות aab ו-ab.

נערך על-ידי שניצל

פורסם
  • מחבר

כן יש פה באג...

ארכיון

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

דיונים חדשים