免责声明:这个问题中讲的故事完全是虚构的,仅出于介绍目的而发明。
我是一个邪恶的农民,为了提高我所在地区的小麦价格,我决定烧掉我周围所有农民的田地。我真的很想看到田野起火(这样我就可以用邪恶的笑容和欢乐地揉搓我的手),但是我也不想被观察到,所以我需要您模拟田野为我焚化。
你的任务:
编写一个程序或函数,将某个字段作为输入,并返回其燃烧的阶段,直到整个字段变成灰烬为止。着火的特定区域用代表火焰强度的整数表示。火从“ 1”开始,然后继续前进到“ 2”,然后是“ 3”,依此类推。一旦大火达到“ 4”,它将着火的任何直接(非对角线)相邻区域都着火。一旦达到“ 8”,它将在下一次迭代中耗尽,并变成灰烬,以“ A”表示。当尚未被火触及的区域时,以“ 0”表示。例如,如果该字段如下所示:
100
000
您的程序应输出以下内容:
100
000
200
000
300
000
410
100
520
200
630
300
741
410
852
520
A63
630
A74
741
A85
852
AA6
A63
AA7
A74
AA8
A85
AAA
AA6
AAA
AA7
AAA
AA8
AAA
AAA
如果需要,可以将以上符号替换为所选的任何符号集,只要它们一致且彼此不同即可。
输入:
字段的起始位置,可以采用任何标准格式,例如上述的换行符-升华字符串。
输出:
每次迭代燃烧时的字段,可以是数组,也可以是由某些字符分隔的字符串。
测试用例:
0301
000A
555
|
v
0301
000A
555
1412
010A
666
2523
020A
777
3634
030A
888
4745
141A
AAA
5856
252A
AAA
6A67
363A
AAA
7A78
474A
AAA
8A8A
585A
AAA
AAAA
6A6A
AAA
AAAA
7A7A
AAA
AAAA
8A8A
AAA
AAAA
AAAA
AAA
得分:
这是代码高尔夫球,最低得分(以字节为单位)获胜!