Menu
CoddyTech

String Compression

נתונה לך מחרוזת s של אותיות באנגלית. דחוס אותה: החלף כל רצף של שתי אותיות זהות או יותר ברצף באות הזאת ואחריה אורך הרצף, והשאר אות שעומדת לבדה כפי שהיא. לכן aabccc הופכת ל־a2bc3. החזר את המחרוזת הדחוסה.

אותיות גדולות וקטנות נחשבות לאותיות שונות: aA הם שני רצפים באורך 1.

פונקציה

compress(s: string) → string
sstring
המחרוזת לדחיסה, אותיות באנגלית בלבד
מחזירהstring
המחרוזת הדחוסה, שבה כל רצף נכתב כאות שלו ואחריה אורכו, כאשר האורך גדול מ־1

אילוצים

  • 1 ≤ s.length ≤ 2 × 104
  • s מכילה רק אותיות באנגלית, a עד z ו-A עד Z.
  • אורך רצף נכתב בשיטה העשרונית ויכול להכיל כמה ספרות.

דוגמאות

קלט
s = "aabccc"
פלט
"a2bc3"
הסבר
הרצפים הם aa, b ו־ccc. הם הופכים ל־a2, b (אות בודדת לא מקבלת ספירה) ול־c3.
challenge icon

שאלת המשך

כתבו את הפעולה ההפוכה: בהינתן מחרוזת דחוסה כמו ab12, בנו מחדש את המקור. איך קוראים מספר חזרות שמורכב מכמה ספרות?

איפוס הקוד
def compress(s):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

s = "aabccc"

הפלט הצפוי

"a2bc3"