def same(s1: str, s2: str):
return (s1.islower() & s2.islower()) | \
(s1.isupper() & s2.isupper()) | \
(s1 == '')
k = int(input())
s = input()
result = 0
tmp_result = 0
now_s = ''
for c in s: <- 搜尋字串
if len(now_s) == k: <- 檢查現在的字串長度是否與 k 值相同
if same(now_s, c): <- 是否為同類型 ex. '小寫' or '大寫'
now_s = now_s[1:] + c <- 是的話,就讓讀到的字元解上去,並且為保持長度,將第一個字元移除 (其實這句語法好像不需要)
tmp_result = k <- 長度維持 k (因為會進來就代表之前一定有到過 k)
else:
now_s = c <- 字串重新開始
tmp_result += 1 if k == 1 else 0 <- 如果 k 值等於 1 代表新字串同時也是一個新的 k-交錯字串
else: <- 不相同代表字串長度還沒到 k
if same(now_s, c):
now_s += c <- 同類型的話,就把字元加進去
if len(now_s) == k:
tmp_result += k <- 加完字串長度到 k 時,就讓長度加 k
else:
now_s = c; tmp_result = 0 <- 不同類型就把字元變為新字串,並且把長度歸 0
result = max(result, tmp_result) <- 取真實長度與暫時長度的最大值
print(result) <- 輸出