Menu
Coddy logo textTech

מזהה דפוסים

חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 87 מתוך 88.

challenge icon

אתגר

קל

קרא מחרוזת מהקלט ומצא את התבנית החוזרת הקטנה ביותר שמרכיבה את המחרוזת כולה.

תבנית תקינה חייבת:

  • להיות באורך שמתחלק ללא שארית באורך הכולל של המחרוזת
  • כשחוזרים עליה מספר מתאים של פעמים, ליצור מחדש את המחרוזת המקורית בדיוק

אם המחרוזת מורכבת מתבנית חוזרת, הדפס את התבנית הקטנה ביותר. אם אין תבנית חוזרת, הדפס את המחרוזת המקורית.

כדי לבדוק אם תבנית מתאימה, אפשר להשתמש בכפל מחרוזות: pattern * count יוצר מחרוזת חדשה על ידי חזרה על התבנית.

לדוגמה, אם הקלט הוא abcabcabc, הפלט צריך להיות:

abc

אם הקלט הוא xyxyxyxy, הפלט צריך להיות:

xy

אם הקלט הוא aaaa, הפלט צריך להיות:

a

אם הקלט הוא hello, הפלט צריך להיות:

hello

אם הקלט הוא abcdef, הפלט צריך להיות:

abcdef

נסו בעצמכם

# קראו את מחרוזת הקלט
s = gets.chomp

# TODO: כתבו את הקוד שלכם למטה
# מצאו את התבנית החוזרת הקצרה ביותר שמרכיבה את המחרוזת כולה
# רמז: בדקו אורכי תבניות שמחלקים את אורך המחרוזת ללא שארית
# השתמשו בכפל מחרוזות (pattern * count) כדי לבדוק אם תבנית מסוימת מתאימה

result = s  # החליפו זאת בפתרון שלכם

# הציגו את התוצאה
puts result

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Ruby אונליין