【问题标题】:Count Areas in a Maze计算迷宫中的区域
【发布时间】:2020-03-25 04:34:08
【问题描述】:

Maze

编写一个函数 count_areas(diagonal_maze),它接受对角线迷宫(作为字符串列表)并返回对角线迷宫中封闭区域的数量。我们假设迷宫的周边有非对角线边界。

>`count_areas(["\//\\\\/", "\///\\\\", "//\\\\/\\", "\/\///"]) 
>12`

>'count_areas(["\/", "/\\"]) 
>4'

我们让每个 \\ 只代表一个 \ 因为 python 语法 \ 是特殊的。

我的想法是查看第一行,然后将其余的与第一行进行比较.... 但是,似乎要考虑的条件太多了。

有人可以澄清我的逻辑吗?

【问题讨论】:

    标签: python image-processing area maze


    【解决方案1】:

    这很容易使用不相交的集合数据结构解决:

    为每个垂直或水平边界创建一个集合 - 单元格之间的边界,以及迷宫边缘周围的边界。

    对于每个/ 单元格,将其顶部和左侧的集合连接起来,并将其底部和右侧的集合连接起来。

    对于每个\ 单元格,连接其顶部和右侧的集合,并连接底部和左侧的集合。

    最后,数一数你还剩下多少套——迷宫的每个区域都有一套。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 2021-06-25
      • 2014-06-25
      • 1970-01-01
      • 2015-06-02
      相关资源
      最近更新 更多