מזהה דפוסים
חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 87 מתוך 88.
אתגר
קלקרא מחרוזת מהקלט ומצא את התבנית החוזרת הקטנה ביותר שמרכיבה את המחרוזת כולה.
תבנית תקינה חייבת:
- להיות באורך שמתחלק ללא שארית באורך הכולל של המחרוזת
- כשחוזרים עליה מספר מתאים של פעמים, ליצור מחדש את המחרוזת המקורית בדיוק
אם המחרוזת מורכבת מתבנית חוזרת, הדפס את התבנית הקטנה ביותר. אם אין תבנית חוזרת, הדפס את המחרוזת המקורית.
כדי לבדוק אם תבנית מתאימה, אפשר להשתמש בכפל מחרוזות: pattern * count יוצר מחרוזת חדשה על ידי חזרה על התבנית.
לדוגמה, אם הקלט הוא abcabcabc, הפלט צריך להיות:
abcאם הקלט הוא xyxyxyxy, הפלט צריך להיות:
xyאם הקלט הוא aaaa, הפלט צריך להיות:
aאם הקלט הוא hello, הפלט צריך להיות:
helloאם הקלט הוא abcdef, הפלט צריך להיות:
abcdefנסו בעצמכם
# קראו את מחרוזת הקלט
s = gets.chomp
# TODO: כתבו את הקוד שלכם למטה
# מצאו את התבנית החוזרת הקצרה ביותר שמרכיבה את המחרוזת כולה
# רמז: בדקו אורכי תבניות שמחלקים את אורך המחרוזת ללא שארית
# השתמשו בכפל מחרוזות (pattern * count) כדי לבדוק אם תבנית מסוימת מתאימה
result = s # החליפו זאת בפתרון שלכם
# הציגו את התוצאה
puts resultכל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 42משתנים וטיפוסי נתונים
מספרים ומשתניםטיפוס הנתונים מחרוזתטיפוס הנתונים בוליאניטיפוס הנתונים Symbolבדיקת טיפוסי נתוניםמוסכמות שמותסיכום – יצירת משתנים8לולאות
לולאת for עם טווחיםלולאת whilebreaknextסיכום – עצרתלולאת timesלולאת untilלולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוקיצורי דרך אריתמטייםסיכום – חשבון פשוטאופרטורי השוואה6קלט ופלט בסיסיים
פלט באמצעות putsפלט באמצעות print ו־pפלט באמצעות משתניםקלט באמצעות getsשיטת Chompהמרת טיפוסיםחזרה — מחשבון גילחזרה — אמת או שקר9מתודות
הגדרת מתודהפרמטרים של מתודהערכי החזרהסיכום - מתודת Sigmaסיכום - מתודת האימותערכי ברירת מחדל של פרמטרים15מעקב אחר הוצאות יומיות
סקירת הפרויקטיציאה מהתוכניתתרגלו בעצמכם: קומפיילר Ruby אונליין