为方便处理边界,在网格下方和右侧周围加一层死格再遍历计算(因为-1下标返回列表最后一项,因此无需在上方和左侧添加)。
最终代码有四行。
代码长度:186字节 vs. 全站第一:106字节。
import sys
d="."
a=[j+d for j in sys.argv[1].split()]+[d*33]
for i in range(32):print("".join(".#"[sum(a[i+k//3-1][j+k%3-1]==d for k in range(9))in[6,6-(a[i][j]!=d)]]for j in range(32)))
|