首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将网格划分为网格

将网格划分为网格
EN

Code Golf用户
提问于 2017-01-23 07:37:25
回答 1查看 597关注 0票数 24

Introduction

有一个小村庄,只有几所房子和空旷的田野。当地的官僚们想要把村庄分成几块,这样每一片土地都有一栋房子,而地块的边界形成了一个很好的直线网格。您的任务是确定这是否可能。

任务

您的输入是一个矩形的2D位数组;1表示一个房子,0表示一个空字段。它的大小至少为1×1,至少包含一个1。您可以以任何合理的格式(嵌套整数列表、字符串列表、多行字符串等)接受输入。

您的程序将确定是否可以使用直线、水平线和垂直线将数组划分为网格单元,以便每个网格单元格包含一个1。网格单元可能有不同的大小和形状,尽管它们总是矩形的。线条必须从数组的一个边缘运行到另一个边缘。

例如,以下是数组的有效划分:

代码语言:javascript
复制
00|0010|01|1
01|0000|00|0
--+----+--+-
00|0000|00|1
01|0010|01|0
--+----+--+-
01|1000|10|1

下面的除法是无效的,因为存在没有1s或多个1的网格单元:

代码语言:javascript
复制
00|0010|01|1
--+----+--+-
01|0000|00|0
00|0000|00|1
01|0010|01|0
--+----+--+-
00|1000|10|1

如果存在有效的除法,则输出一个真实值,否则输出一个虚假值。

规则与

评分

您可以编写完整的程序或函数。最低字节数获胜。

测试用例

代码语言:javascript
复制
[[1]] -> True
[[0,1],[1,0]] -> True
[[1,1],[1,0]] -> False
[[1,0,1],[0,1,0]] -> True
[[1,0],[0,1],[0,1]] -> True
[[1,0,0],[0,0,1],[0,1,1]] -> True
[[1,1,1],[1,1,1],[1,1,1]] -> True
[[1,0,1],[0,1,0],[1,0,0]] -> True
[[1,0,0],[1,0,0],[0,1,1]] -> False
[[0,0,0,0,1],[1,0,0,1,0],[0,0,0,1,0]] -> False
[[0,0,1,0,1],[0,0,0,1,0],[0,0,0,0,0]] -> True
[[1,1,0,0,0],[0,0,0,0,0],[1,0,1,0,0]] -> True
[[1,1,0,1,1],[0,1,0,1,1],[1,0,0,0,0]] -> True
[[0,0,0,0,0,0,0],[0,1,1,1,0,1,0],[0,1,0,0,1,0,0],[0,0,0,0,0,0,1],[0,0,1,0,0,0,1],[1,1,0,1,1,0,0]] -> False
[[1,1,0,0,0,0,0],[1,0,1,1,0,1,0],[0,0,0,0,1,0,0],[0,1,0,1,1,0,0],[1,0,0,0,1,1,0],[0,0,0,0,0,1,0]] -> False
[[0,1,0,1,1,1,0],[0,0,0,0,1,0,0],[0,0,0,0,0,0,0],[1,0,0,1,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,1]] -> True
[[0,1,0,0,1,0,1],[1,0,0,0,1,0,1],[0,0,1,0,1,0,1],[1,0,0,0,1,1,0],[0,0,0,1,1,1,0],[0,1,0,0,1,0,1]] -> True
[[0,1,0,0,1,0,0,1,0],[0,0,0,0,1,1,0,1,0],[1,1,0,0,1,0,0,0,0],[0,0,1,0,1,0,1,0,0],[0,0,1,0,1,0,1,0,0],[0,1,0,0,0,1,0,0,1],[0,1,0,0,0,0,1,0,0]] -> False
[[1,0,1,0,0,1,1,0,1],[0,1,1,0,0,1,1,0,1],[1,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,1,1],[0,1,1,0,1,0,1,0,1],[1,0,1,0,0,1,1,0,1]] -> True
EN

回答 1

Code Golf用户

发布于 2017-01-24 00:17:53

果冻,22字节

代码语言:javascript
复制
ŒṖḅ1S€€=1Ȧ€
SŒṖ⁸ṁþÇ€FS

在网上试试!

票数 3
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/107771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档