PythonChallenge 挑战之路 Level-32

这一关给出的是一个类似数独游戏,叫做Nonogram,大概的玩法就是按照每一行和每一列的要求确定每个格子是否点亮。http://zh.wikipedia.org/wiki/Nonogram给出了详细的介绍以及人工求解的思路。

一开始的提示是下载一个warmup.txt,也就是一组输入,然后求解出结果。这组数据是9*9的,可以先人工求解,算出的结果是一个向上的箭头,尝试用up替换,得到第二组正式的输入,32*32,编程计算得到一幅Python大蟒蛇的图片,用python替换,然后获得一段文本:

"Free" as in "Free speech", not as in "free...  再用谷歌搜一下就可以知道缺少是beer了。

对于求解的算法,本质和wiki上的思路差不多,而且在这关里还稍微简单点:

1.处理完数据后,首先就是要获得每一行、每一列可能的备选排列

2.针对每一行(列),寻找出相同的点(也就是每一种备选排列在这个位置都相同),然后用这个点去排除其他列(行)的备选排列。如果只有一种备选方案,那么这一行(列)就确定了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值