【Python训练营】Python每日一练----第6天:迷宫
【摘要】
📢📢📢📣📣📣 🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜 🏅🏅🏅CSDN Python领域优质创作者,大二在读,欢迎大家...
📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照😜😜😜
🏅🏅🏅CSDN Python领域优质创作者,大二在读,欢迎大家找我合作学习(文末有VX 想进学习交流群or学习资料 欢迎+++)
💕入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
🍉🍉🍉“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟✨✨✨
前言:
【Python训练营】是针对Python语言学习所打造的一场刷题狂欢party! 对基础知识把握不牢固的话,欢迎参考此套课程:Python公开课 搭配使用最佳嗷~喜欢的话就抓紧订阅起来吧!🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信或者在文末添加我的VX,我会拉你进学习交流群,我们一起交流学习,报团打卡
题目描述
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
X 星球的一处迷宫游乐场建在某个小山坡上。它是由 10 \times 1010×10 相互连通的小房间组成的。
房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:
LL 表示走到左边的房间,
RR 表示走到右边的房间,
UU 表示走到上坡方向的房间,
DD 表示走到下坡方向的房间。
X 星球的居民有点懒,不愿意费力思考。他们更喜欢玩运气类的游戏。这个游戏也是如此!
开始的时候,直升机把 100100 名玩家放入一个个小房间内。玩家一定要按照地上的字母移动。
迷宫地图如下:
UDDLUULRUL
UURLLLRRRU
RRUURLDLRD
RUDDDDUUUU
URUDLLRRUU
DURLRLDLRL
ULLURLLRDU
RDLULLRDDD
UUDDUDUDLL
ULRDLUURRR
请你计算一下,最后,有多少玩家会走出迷宫,而不是在里边兜圈子?
如果你还没明白游戏规则,可以参看下面一个简化的 4x4 迷宫的解说图:
运行限制
最大运行时间:1s
最大运行内存: 128M
解题思路
- 将迷宫用列表的方式表示出来,可以是列表套列表,也可以是列表中套字符串
- 在四个边上找出最原始的出口,将其在列表中表示出来,定义为result
- 写出search()函数,依次遍历每个出口上下左右四个元素看看其方向是否能直通出口,如果它们直通出口,说明他们每个也是直通出口的,将其也加入出口的行列,随后再遍历他们,找出所有的出口。
- 注意向右找出口时,原出口列的序列大小不为0,因为列的序列0的左边没元素了;同理向左时,列的序列大小不为9;向上时行的序列大小不为9;向下时行的序列大小不为0.
源码分享
# 一万次悲伤,依然会有Dream,我一直在最温暖的地方等你!
# @Time : 2022/1/22 11:38
# @Author : 是Dream呀!
# @File : 迷宫.py
map = ['UDDLUULRUL',
'UURLLLRRRU',
'RRUURLDLRD',
'RUDDDDUUUU',
'URUDLLRRUU',
'DURLRLDLRL',
'ULLURLLRDU',
'RDLULLRDDD',
'UUDDUDUDLL',
'ULRDLUURRR']
# 写出所有的出口
result = [[0,0],[0,4],[0,5],[0,8],[9,3],[9,9]]
def search(result,map):
for i in result:
if i[1] != 0 and map[i[0]][i[1] - 1] == 'R':
result.append([i[0], i[1] - 1])
if i[0] != 0 and map[i[0] - 1][i[1]] == 'D':
result.append([i[0] - 1, i[1]])
if i[1] != 9 and map[i[0]][i[1] + 1] == 'L':
result.append([i[0], i[1] + 1])
if i[0] != 9 and map[i[0] + 1][i[1]] == 'U':
result.append([i[0] + 1, i[1]])
return result
search(result,map)
print(len(result))
学习总结
1.创建双列表时,小列表元素类型必须要声明: str(i)或者int(i)最常用
map = ['UDDLUULRUL',
'UURLLLRRRU',
'RRUURLDLRD',
'RUDDDDUUUU',
'URUDLLRRUU',
'DURLRLDLRL',
'ULLURLLRDU',
'RDLULLRDDD',
'UUDDUDUDLL',
'ULRDLUURRR']
a = [[str(i) for i in j] for j in map]
print(a)
# [['U', 'D', 'D', 'L', 'U', 'U', 'L', 'R', 'U', 'L'], ['U', 'U', 'R', 'L', 'L', 'L', 'R', 'R', 'R', 'U'], ['R', 'R', 'U', 'U', 'R', 'L', 'D', 'L', 'R', 'D'], ['R', 'U', 'D', 'D', 'D', 'D', 'U', 'U', 'U', 'U'], ['U', 'R', 'U', 'D', 'L', 'L', 'R', 'R', 'U', 'U'], ['D', 'U', 'R', 'L', 'R', 'L', 'D', 'L', 'R', 'L'], ['U', 'L', 'L', 'U', 'R', 'L', 'L', 'R', 'D', 'U'], ['R', 'D', 'L', 'U', 'L', 'L', 'R', 'D', 'D', 'D'], ['U', 'U', 'D', 'D', 'U', 'D', 'U', 'D', 'L', 'L'], ['U', 'L', 'R', 'D', 'L', 'U', 'U', 'R', 'R', 'R']]
🏅今天是我在Python训练营的第 6 天,希望每天都能见到最棒的你🏅
🏆往期文章----好文推荐🏆
🥇 [Python公开课]零基础玩转Python基础篇----第一节:Python的自我介绍
🏆 【Python训练营】Python每日一练----第1天:购物单
🏆 【Python训练营】Python每日一练----第2天:门牌制作
🏆 【Python训练营】Python每日一练----第3天:作物杂交
🏆 【Python训练营】Python每日一练----第4天:等差素数列
🏆 【Python训练营】Python每日一练----第5天:承压计算
🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~
文章来源: xuyipeng.blog.csdn.net,作者:是Dream呀,版权归原作者所有,如需转载,请联系作者。
原文链接:xuyipeng.blog.csdn.net/article/details/122635840
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)