#43825: python NA60%


11230013@wfsh.tp.edu.tw (10129游博森)

學校 : 不指定學校
編號 : 254439
來源 : [210.70.212.210]
最後登入時間 :
2024-11-14 19:21:57
c462. apcs 交錯字串 (Alternating Strings) -- apcs | From: [210.70.212.199] | 發表日期 : 2024-11-03 12:04

各位大大們求解

n = int(input())
s = input()
ch = []
big , small = 0 , 0
for i in s:
    if i.isupper():
        big += 1
        if small != 0:
            ch.append(small)
            small = 0
    else:
        small += 1
        if big != 0:
            ch.append(big)
            big = 0
if big != 0:    ch.append(big)
if small != 0:  ch.append(small)

#print(ch)
num = 0
maxs = 0
flag = False
for i in ch:
    if i > n and num == 0:
        num += n
    elif i == n:
        num += n
    elif i > n:
        num += n
        flag = True
    maxs = max([maxs , num])
    if flag:
        num = 0
        flag = False

print(maxs)

 
#43829: Re: python NA60%


leeguanhan0909@gmail.com (李冠翰)

學校 : 高雄市苓雅區復華高級中學國中部
編號 : 276558
來源 : [36.238.157.177]
最後登入時間 :
2024-11-13 23:08:53
c462. apcs 交錯字串 (Alternating Strings) -- apcs | From: [42.77.166.40] | 發表日期 : 2024-11-03 22:10

各位大大們求解

n = int(input())
s = input()
ch = []
big , small = 0 , 0
for i in s:
    if i.isupper():
        big += 1
        if small != 0:
            ch.append(small)
            small = 0
    else:
        small += 1
        if big != 0:
            ch.append(big)
            big = 0
if big != 0:    ch.append(big)
if small != 0:  ch.append(small)

#print(ch)
num = 0
maxs = 0
flag = False
for i in ch:
    if i > n and num == 0:
        num += n
    elif i == n:
        num += n
    elif i > n:
        num += n
        flag = True
    maxs = max([maxs , num])
    if flag:
        num = 0
        flag = False

print(maxs)

問題在下面的for-loop

第一個是i<n時也要結算一次

第二個是可利用字串

在elif i>n:這行

要結算一次沒問題

但是接下來應該是從n開始算

例如2

aabbaaabbaabb

ch=[2,2,3,2,2,2]

答案是8(aabbaabb)aa是由aaa(3)獲得

所以可以開一個temp存取結算時可利用字串長度

上面一樣

 AC code(for-loop)

...

elif i>n:

    num+=n

    temp=n

    flag=True

else:

    temp=0 

    flag=True

maxs=max([maxs,num])

if flag:

    num=temp

    flag=False

 

 
ZeroJudge Forum