import mmap from sys import stdout from sys import stdin import contextlib with contextlib.closing(mmap.mmap(stdin.fileno(),98915248,access=mmap.ACCESS_READ)) as mm: s=str(mm.readline()).replace('\x00','') s=s.replace(' ','') stdout.write(s[2:len(s)-1]) mm.close()
怎麼改?
為什麼不是TLE就是WA,我還以為mmap很快...
import mmap from sys import stdout from sys import stdin import contextlib with contextlib.closing(mmap.mmap(stdin.fileno(),98915248,access=mmap.ACCESS_READ)) as mm: s=str(mm.readline()).replace('\x00','') s=s.replace(' ','') stdout.write(s[2:len(s)-1]) mm.close()
怎麼改?
為什麼不是TLE就是WA,我還以為mmap很快...
原來要用decode()啊~
import mmap from sys import stdout from sys import stdin import contextlib with contextlib.closing(mmap.mmap(stdin.fileno(),98915248,access=mmap.ACCESS_READ)) as mm: s=str(mm.readline()).replace('\x00','') s=s.replace(' ','') stdout.write(s[2:len(s)-1]) mm.close()
怎麼改?
為什麼不是TLE就是WA,我還以為mmap很快...
最後的 mm.close() 可以刪掉,因為 contextlib.closing 會處理。
另外就是用 decode 會比 str 來得自然,似乎也比較快。
import mmap from sys import stdout from sys import stdin import contextlib with contextlib.closing(mmap.mmap(stdin.fileno(),98915248,access=mmap.ACCESS_READ)) as mm: s=str(mm.readline()).replace('\x00','') s=s.replace(' ','') stdout.write(s[2:len(s)-1]) mm.close()
怎麼改?
為什麼不是TLE就是WA,我還以為mmap很快...
最後的 mm.close() 可以刪掉,因為 contextlib.closing 會處理。
另外就是用 decode 會比 str 來得自然,似乎也比較快。
謝謝~