View Single Post
ישן 09-11-07, 06:53   # 6
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

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


אשמח לפיתרון שאוכל להבין

תודה!
פשוט תתעלם מהמצביעים... ותסתכל על הלולואה, זה מה שחשוב כאן.

בלי מצביעים:
PHP קוד:
     while (!ok && len) {
        if ((
st)[i] == '$'
            if (!
fstfst i;
                else {
                    
next = (fst)+i;
                    if (
next len) {
                        if ((
st)[next] == '$'ok 1;
                        }
                    else 
fst i;
                }
        
i++;
    }
    return 
ok
ובמילים:
כל עוד ok הוא שקר ולא הגעת לסוף המחרזות בצע:
בדוק תו-תו:
אם התו הנוכחי הוא התו $:
אם זה התו הראשון מהסוג $ שמור את מיקומו למשתנה fst
אחרת
(כניראה זה התו השני שאנחנו מוצאים... המיקום הנוכחי הוא אמצע המחרוזת הסימטרית)
תו ה-$ הבא צריך להיות ב: מיקום נוכחי פחות המיקום של התו הראשון (ההפרש בין
הראשון לאמצע) ועוד המיקום הנוכחי.
אם המיקום הבא לא חורג מאורך המחרוזת, בדוק האם התו אכן שם.
אם כן שנה את ok ל1.
אם לא, הכנס את המיקום הנוכחי למשתנה fst. (ז"א מבחינתנו זה עכשי והתו
הראשון)
__________________
FreeBSD, a *nix operating system
  Reply With Quote