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. בשני החלונות בני שש האותיות יש B ואת C, ולכן נדרשים שני שינויים.
challenge icon

שאלת המשך

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

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

s = "BAAACAB"
k = 1

הפלט הצפוי

5