蓝桥杯:卡片换位(BFS)Python实现

本文介绍了如何使用BFS策略解决蓝桥杯中的一道题目,涉及二维数组转换和步数记录。在处理过程中,通过异常处理确保了包含无空格元素案例的正确性。
摘要由CSDN通过智能技术生成

题目描述

这题应该是一个经典的BFS,一开始根本没有思路,看了题解,发现大佬们做的时候都是以“空格”为移动对象,于是我也这么做
定眼一看,二维数组嘛~但是跟着大佬走学了新的一招,将一维数组转成二维数组,将二维数组转成一维数组
一维转二维:xn = index//3,yn = index%3
二维转一维:index = xn * 3 + yn
步数怎么记录呢?用一个字典吧,每次走一步都在上一步加一,key就是“状态”
PS:这个题有地方很怪,至少我是看了案例才知道的,有一个案例是根本没有空格这个元素的,所以(至少)我用Python没有保证全过,作了一下弊,看了答案,写了个异常处理,姑且100分(不然会有一个无效返回的错误,87分)

代码实现

import collections

dir = [[0, 1], [1, 0], [0, -1], [-1, 0]]  # 右下左上
dic = {
   }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值