Python Code:
k=int(input())#輸入k值
s=input()#輸入交錯字串
prelow=None #前一個字元是小寫
upper=0#連續大寫的字元總數
low=0#連續小寫的字元總數
alterlen=0#目前的交錯的字串長度
longest=0#最長的交錯子字串長度
#處理第一個字元
if s[0].isupper()==True:
prelow=False
upper=1
if k==1:
alterlen=1
longest=1
else:
prelow=True
low=1
if k==1:
alterlen=1
longest=1
#處理第二個字元之後,大大
for i in range(1,len(s)):
if (prelow==False and s[i].isupper()==True):
upper+=1
low=0
if upper==k:
alterlen+=k
longest=max(alterlen,longest)
if upper>k:alterlen=k
elif (prelow==False and s[i].isupper()==False):#大小
if upper<k:alterlen=0
low=1
upper=0
if k==1:
alterlen+=1
longest=max(longest,alterlen)
prelow=True
elif (prelow==True and s[i].isupper()==True):#小大
if low<k:alterlen=0
upper=1
low=0
if k==1:
alterlen+=1
longest=max(alterlen,longest)
prelow=False
elif (prelow==True and s[i].isupper()==False):#小小
low+=1
upper=0
if low==k:
alterlen+=k
longest=max(longest,alterlen)
if low>k:
alterlen=k
print(longest)
沒有留言:
張貼留言