Menu
CoddyTech

Partition Labels

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

פונקציה

partitionLabels(s: string) → integer-array
sstring
המחרוזת שיש לחתוך, אותיות קטנות בלבד
מחזירהinteger-array
האורך של כל חלק, משמאל לימין

אילוצים

  • 1 ≤ s.length ≤ 5 × 104
  • s מכילה רק אותיות אנגליות קטנות.
  • החלקים שומרים על הסדר שלהם ויחד מרכיבים את כל s, כך שסכום האורכים שלהם שווה ל-s.length.

דוגמאות

קלט
s = "abacdcefe"
פלט
[3, 3, 3]
הסבר
האותיות a נמצאות במקומות 0 ו־2, האותיות c במקומות 3 ו־5 והאותיות e במקומות 6 ו־8, לכן החיתוכים מתבצעים אחרי aba ואחרי cdc. אי אפשר לחתוך שוב אף חלק, כי כל אחד מהם מתחיל ומסתיים באותה אות.

lock icon+14 בדיקות נסתרות בשליחה

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

מקרה 1

מקרה 2

מקרה 3

קלט

s = "abacdcefe"

צפוי

[3, 3, 3]