Untitled

 avatar
unknown
python
3 years ago
1.2 kB
8
Indexable
k = int(input())
w = input()
a = []
b = []
s = []
d = []
f = []

for i in w:
    if i.isupper():
        a += [1]
    else:
        a += [2]

for _ in range(k):
    b += [1]
    s += [2]

r = 0
# 把<改成<=,這樣才能包含到最後一個字母
while(r+k <= len(a)):
    if a[r:(r+k)] != b and a[r:(r+k)] != s:
        r += 1
    else:
        d += [r]
        r += 1
    
if d == []:
        print(0)
else:
    for v in d:     
        
        counter = 0
        if a[v:(v+k)] == b:
            before = 1
            counter += k
        elif a[v:(v+k)] == s:
            before = 2
            counter += k
        for i in range(v+k, len(a)-k, k):
            if a[i:(i+k)] == b and before == 2:
                counter += k
                before = 1
            elif a[i:(i+k)] == s and before == 1:
                counter += k
                before = 2
            else:
                f += [counter]
                break
        # 如果最長子字串有包含最後的字母,就進不到上面的else
        # 因此,離開上面的for迴圈,還要再檢查一次counter!
        if counter != 0:    f += [counter]
    print(max(f))
Editor is loading...