使用广度优先搜索,先找出能量源列表,更新其周围一格,再更新其周围两个。。。以此类推直至结束,此处用了比较多的短码技巧。
最终代码有七行。
代码长度:257字节 vs. 全站第一:140字节。
import sys,string as s
for a in sys.argv[1:]:
r,i=[c for c in range(89)if a[c]=="0"],1
while r:=[j for c in r for j in[c+(c%10<8),c-(c%10>0),c+10*(c<80),c-10*(c>9)]if a[j]=="-"]:
for c in r:a=a[:c]+s.printable[i].swapcase()+a[c+1:]
i+=1
print(a+"\n")
|