挑战
通过字符数最短的代码来解决输入灯灭板。
熄灯板是一个由两个字符组成的不同大小的 2d 方形网格 -.
用于关闭*
的灯和打开的灯。
为了解决这个问题,所有的“灯”都必须关掉。切换一盏灯(即在打开时关闭,在关闭时打开)一次进行 5 盏灯 - 选择的灯和灯以 +(加号)形状围绕它。“选择”中间的灯会解决板子:
.*.
***
.*.
由于熄灯!解决方案顺序无关紧要,输出将是一块新板,上面标有要选择的灯泡。上板的解决方案是
...
.X.
...
在没有侧灯泡可关的角落关灯不会溢出:
...
..*
.**
在这种情况下,选择右下方的灯泡只会关闭 3 个灯泡。
测试用例
Input:
**.**
*.*.*
.***.
*.*.*
**.**
Output:
X...X
.....
..X..
.....
X...X
Input:
.*.*.
**.**
.*.*.
*.*.*
*.*.*
Output:
.....
.X.X.
.....
.....
X.X.X
Input:
*...*
**.**
..*..
*.*..
*.**.
Output:
X.X.X
..X..
.....
.....
X.X..
代码计数包括输入/输出(即完整程序)。