Menu
CoddyTech

Longest Repeating Character Replacement

בינוניחלון נעpython iconjava iconcpp iconc iconjs icon+10

נתונה לך מחרוזת s של אותיות אנגליות גדולות ומספר שלם k. מותר לך לבחור לכל היותר k מיקומים ב־s ולשנות את האות בכל אחד מהם לכל אות גדולה אחרת.

החזר את האורך של תת־המחרוזת הארוכה ביותר, כלומר רצף של אותיות סמוכות, שמכילה אות אחת שחוזרת על עצמה לאחר השינויים שלך.

פונקציה

characterReplacement(s: string, k: integer) → integer
sstring
המחרוזת של האותיות הגדולות
kinteger
מספר האותיות המרבי שמותר לך לשנות
מחזירהinteger
האורך של תת־המחרוזת הארוכה ביותר של אותה אות חוזרת שאפשר ליצור

אילוצים

  • 1 ≤ s.length ≤ 5 × 104
  • s מכילה רק אותיות אנגליות גדולות.
  • 0 ≤ k ≤ s.length

דוגמאות

קלט
s = "BAAACAB"k = 1
פלט
5
הסבר
שנה את C ל־A, ובאינדקסים 1 עד 5 יופיע AAAAA. בשביל שש אותיות נדרשים שני שינויים: באינדקסים 0 עד 5 מופיעים B ו־C, ובאינדקסים 1 עד 6 מופיעים C וה־B האחרון.

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

challenge icon

שאלת המשך

מה משתנה אם s יכולה להכיל כל תו, ולא רק את 26 האותיות הגדולות?

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

מקרה 1

מקרה 2

מקרה 3

קלט

s = "BAAACAB"
k = 1

צפוי

5