python高级练习题:电梯【难度:5级】:
- 我敢打赌,你永远不会赶上电梯(又名电梯)同样没有这个习题的思考!*
简介
一个多层建筑中有一个提升.
人们排队在不同的楼层等候电梯.
有些人想上去.有些人想下去.
他们要到由数字表示的地板(即,当他们进入电梯,这是他们将按下按钮)
BEFORE(人排队等候)后(人他们的目的地)
+ - + - +
/ ---------------- | | ---------------- \ / ---------------- | | ---------------- \
10 | | | 1,4,3,2 | 10 | 10 | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
9 | | | 1,10,2 | 9 | | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
8 | | | | 8 | | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
7 | | | 3,6,4,5,6 | 7 | | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
6 | | | | 6 | 6,6,6 | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
5 | | | | 5 | 5,5 | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
4 | | | 0,0,0 | 4 | 4,4,4 | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
3 | | | | 3 | 3,3 | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
2 | | | 4 | 2 | 2,2,2 | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
1 | | | 6,5,2 | 1 | 1,1 | | |
| ---------------- | | ---------------- | | ---------------- | | ---------------- |
G | | | | G | 0,0,0 | | |
| ==================================== | | ==================================== |
规则
抬起规则
- 该电梯只向上或向下!
- 每个楼层有UP和DOWN电梯呼叫按钮(除仅具有向下和向上分别在顶部和接地层)
- 直到有没有更多的人希望得到的开/关在它已经行驶方向上的提升不会改变方向
- 当空的电梯尝试要聪明.例如,
* 如果它上升则可能持续到收集最顶层的人想下去
* 如果往下走则可能继续向下收集想要去了最底层的人 - 这部电梯的人的最大容量
- 调用时,电梯会在一个楼层停止** 即使是充满**,但除非别人下车还没人能上!
- 如果电梯是空的,也没有人在等待,那么它将返回地面
人规则
- 人都在**“队列” ** 代表他们到达的顺序等待电梯
- 所有的人都可以按UP / DOWN电梯呼叫按钮
- 只有人去** 的相同方向** 为升程可以进入它
- 作品是根据**"排队"为了**,但那些无法进入不会阻止那些在他们身后,可
- 如果一个人是无法进入一个完整的电梯,他们将再次按UP / DOWN电梯呼叫按钮后,它已经离开了,没有他们
习题任务
- 获取所有的人,他们想要去的同时服从电梯** ** 规则和** 人规则的地板**
- 返回所有楼层的清单,电梯停在(在访问的顺序!)
注:电梯总是从一楼(和人民等待一楼可以立即进入)
I / O
输入
队列为
人们对于建筑的所有楼层队列的列表.
* 建筑物的高度变化
* 0 =一楼
* 并非所有楼层都队列
* 队列索引[0]是队列的"头"
* 数字表示人想要去的楼层
允许在电梯的人*
能力
最大数量
-
参数验证* - 所有输入参数可以假定确定.不需要检查的东西,如:
-
人们想要去不存在的楼层
-
人们想要乘电梯到地面,他们已经在
-
与<2层建筑物
-
地下室
输出
- 该电梯停在各楼层的列表(按顺序访问!)
示例
引用示例测试用例.
语言的注意事项
- Python:该对象将在测试中被初始化为你
的
祝好运 -
DM
</跨度>
编程目标:
class Dinglemouse(object):
def __init__(self, queues, capacity):
pass
def theLift(self):
return []
测试样例:
# Floors: G 1 2 3 4 5 6 Answers:
tests = [[ ( (), (), (5,5,5), (), (), (), () ), [, 2, 5, 0] ],
[ ( (), (), (1,1), (), (), (), () ), [, 2, 1, 0] ],
[ ( (), (3,), (4,), (), (5,), (), () ), [, 1, 2, 3, 4, 5, 0] ],
[ ( (), (0,), (), (), (2,), (3,), () ), [, 5, 4, 3, 2, 1, 0] ]]
for queues, answer in tests:
lift = Dinglemouse(queues, 5)
test.assert_equals(lift.theLift(), answer)
最佳答案(多种解法):
点击查看答案
更多关联题目:
交流讨论:
景越Python基础训练营QQ群
欢迎各位同学加群讨论,一起学习,共同成长!
免责申明:
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/the-lift
更多推荐
python高级练习题:电梯【难度:5级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
发布评论