#22279: python最後一筆TLE


yaushu0306@gmail.com (Yaoshu)

學校 : 不指定學校
編號 : 99133
來源 : [163.24.139.119]
最後登入時間 :
2022-11-25 16:33:41
d574. 節約符咒 -- jack1 | From: [140.127.41.248] | 發表日期 : 2020-08-21 10:59

最後一筆的n來到5000000,

我執行超過3s,

倒數第二筆的n有3000000,就執行2.1s了

有高手可以給予指教嗎?

 
#22291: Re:python最後一筆TLE


yaushu0306@gmail.com (Yaoshu)

學校 : 不指定學校
編號 : 99133
來源 : [163.24.139.119]
最後登入時間 :
2022-11-25 16:33:41
d574. 節約符咒 -- jack1 | From: [218.164.59.232] | 發表日期 : 2020-08-22 09:15

最後一筆的n來到5000000,

我執行超過3s,

倒數第二筆的n有3000000,就執行2.1s了

有高手可以給予指教嗎?


for迴圈裡面怎麼比較字元影響很大

起初我用的是

for i in range(n-1):

        if s[i] == s[i+1]:

            iCount += 1

            continue

        else:

            listAns.append(str(iCount))

            listAns.append(s[i])

            iCount = 1

    listAns.append(str(iCount))

    listAns.append(s[n-1])

最後一筆不管怎麼樣就是TLE

後來換成

scur = s[0]

    for i in range(n):

        if s[i] == scur:

            iCount += 1

            continue

        else:

            listAns.append(str(iCount))

            listAns.append(scur)

            scur = s[i]

            iCount = 1

    listAns.append(str(iCount))

    listAns.append(scur)

就可以加速了

 
ZeroJudge Forum