0

给定一个二维数组,其单元格被标记并组合在一起形成不同的线性形状,您将如何识别重复的形状。

0010000100000000000000000000
0010000100000000000000000000
0011100100000100000000011100
0000000100000111111000000000
0010000111100100000000000000
0110000000000001111000000000
0010000100000000000000000111
0000000001000000000011110000
0000000001111110000000000000
0010000001000000000000000000

这里我们有 3 个重复的形状:
1
111111
1

111

1

4

1 回答 1

3

通过在单元格上循环找到由连接1的 s 生成的所有形状,直到找到 a 1,然后使用洪水填充算法找到由所有连接的单元格形成的形状。如何存储洪水填充形状取决于您,但我假设您为每个形状创建了一个字符串表示。现在使用任何用于比较字符串的方法来查找不同的字符串。

于 2013-07-17T14:57:24.500 回答