我剛剛發現SPOJ網站,我提出我的第一個解決問題的辦法:Alphacode http://www.spoj.com/problems/ACODE/SPOJ - ACODE - 在Python NZEC錯誤3
在線法官報以NZEC錯誤與下面的代碼,我不不明白爲什麼。我選擇了Python 3.2.3(functools.lru_cache出現在Python3.2中),我也嘗試刪除lru_cache並將其替換爲memoize修飾器,但同樣的問題。
from functools import lru_cache
@lru_cache(maxsize=10000)
def acode(s, i=0):
if i == len(s):
return 1
if s[i] == "0":
return 0
res = acode(s, i+1)
if i + 1 < len(s) and (10 * int(s[i]) + int(s[i+1]) <= 26):
res += acode(s, i+2)
return res
def main():
i = input().strip()
while i != "0":
print(acode(i))
i = input().strip()
if __name__ == "__main__":
import sys
try:
main()
except:
sys.exit(0)
您可以使用此命令測試:
$ echo "123\n1111\n21\n0" | python3 acode.py
注:SPOJ網站上,但我找不到輸出日誌我也沒有「:除了嘗試」提交。