背景
我有一堆破旧的黑白图像。其中有些描绘的是藤蔓爬在墙上,有些则没有。您的任务是为我分类。
输入输出
您的输入是矩形A的二维数组,以任何方便的格式给出。它不会为空,但不能保证同时包含0和1。如果满足以下条件,则阵列将描绘出藤蔓:
- A的底行至少包含1。这些是葡萄树的根。
- A中的每个1 通过1s路径连接到最下面一行,该路径仅向左,向右和向下(不向上,也不对角线)移动。这些路径是葡萄树的分支。
如果输入描述的是藤本植物,则输出为一致的真实值,否则为一致的虚假值。
例子
这个数组描绘了一个藤蔓:
0 0 1 0 0 1
0 1 1 0 0 1
0 1 0 1 1 1
1 1 0 1 0 1
0 1 1 1 0 1
0 0 1 0 1 1
此输入未描述藤本植物,因为在右边框的中间有一个1,它没有通过分支连接到根部:
0 0 0 1 1 0
0 1 0 1 1 1
0 1 0 1 0 1
0 1 1 1 1 0
0 0 1 1 0 1
全0数组永远不会描述藤蔓,但全1数组总是如此。
规则和计分
您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。
测试用例
真实的输入:
1
0
1
1
01
11
0000
0111
1100
1001
1111
1111
1111
1111
001001
011001
010111
110101
011101
001011
1011011
1001001
1111111
0100000
0111111
1111001
1001111
1111101
0000000
0011100
0010100
0011100
0001000
1111111
0001000
0011100
0010100
0010100
虚假输入:
0
1
0
10
01
000
000
000
011
110
000
111111
000000
101011
111001
010010
001000
000010
110001
001100
111111
110101
010011
111011
000110
010111
010101
011110
001101
11000000
10110001
10011111
11110001
01100011
00110110
01101100
01100001
01111111