日期:2025年12月9日
ZeroJudge 題目連結:n083. 數字序號轉換
解題想法
假設計算結果儲存在變數 m,m 的初始值為 0。將讀到的字串從索引值 0 開始,每次取長度為 3 的子字串,並用一個布林值記錄這次是否需要將子字串反序。m 加上子字串轉成 int 之後的值,再對 997 取餘數。
Python 程式碼
使用時間約為 1.8 s,記憶體約為 17.6 MB,通過測試。
import sys
MOD = 997
result = []
lines = sys.stdin.readlines()
for line in lines:
line = line.strip()
n = len(line)
m = 0
rev = False
for i in range(0, n, 3):
s = line[i:i+3]
if rev: s = s[::-1]
rev = not rev
m = (m + int(s))%MOD
result.append(str(m) + "\n")
sys.stdout.write("".join(result))