????????????????????????
????????????Hello,大家好我叫是Dream呀,一个有趣的Python博主,多多关照????????????
????入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!????????????
????最后,愿我们都能在看不到的地方闪闪发光,一起加油进步????????????
????????????“一万次悲伤,依然会有Dream,我一直在最温暖的地方等你”,唱的就是我!哈哈哈~????????????
????????????✨✨✨
Python每日一练:
- 题目描述
- 解题思路
- 源码分享
- 学习总结
- ????往期文章----好文推荐????
题目描述
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
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 天,希望每天都能见到最棒的你????
???????????? 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~