先找出需要读取的区域,用匿名函数x处理方向和提取每个位置的坐标。
容易验证,#和空格与0和1的转换关系可以写作a[i][j]==' '与(i+j)%2作异或。
将每个位置转化为二进制字符后再用标准库将二进制流解码。
最终代码行有四行。
代码长度:265字节 vs. 全站第一:135字节。
import sys
a=sys.argv[1].split('\n')
x=lambda a,b,c,d=-1:[[i,j]for i in range(a,b,d)for j in[c,c-1]]
print(int(''.join(str((a[i][j]==' ')^(i+j)%2)for i,j in x(14,8,20)+x(9,21,18,1)+x(20,8,16)+x(9,21,14,1)+x(20,6,12)+x(5,-1,12)+x(0,6,10,1)),2).to_bytes(17).decode())
|