中心老城区有很多奇葩的停车场,假设现在有一条单出入口的胡同路用来做停车场。注意:①单出入口;②假设胡同路 车(不可并排停车)。 现在给出当天车辆到达停车场的顺序数列A(小车用正整数标识别)和当天停车场出车顺序数列B。请根据A数列顺序, 顺序是否合理的,如B是合理的出车顺序,则输出true;如B是不可能存在的出车顺序,则输出false。 例1:输入:[1,2,3,4][4,3,2,1]输出:true 例2:[1,2,3,4][4,3,1,2]输出:false 例3:[1,2,3,4][2,1,4,3]输出:true
时间: 2023-05-19 11:07:25 浏览: 147
假设停车场只有一个入口和一个出口,利用两对光电传感器检测车辆的进出情况
这是一个典型的栈的应用,可以使用栈来模拟停车场的进出过程。具体实现如下:
1. 初始化一个空栈,表示停车场当前没有车辆。
2. 遍历顺序数列A,对于每个车辆,将其入栈。
3. 遍历顺序数列B,对于每个车辆,如果其在栈顶,则将其出栈;否则说明出车顺序不合理,返回false。
4. 如果顺序数列B遍历完毕后栈为空,则说明出车顺序合理,返回true;否则说明还有车辆未出场,返回false。
下面是实现代码:
```python
def check_parking_order(A, B):
stack = []
i = 0
for car in A:
stack.append(car)
while stack and stack[-1] == B[i]:
stack.pop()
i += 1
return not stack
# 测试
print(check_parking_order([1,2,3,4], [4,3,2,1])) # True
print(check_parking_order([1,2,3,4], [4,3,1,2])) # False
print(check_parking_order([1,2,3,4], [2,1,4,3])) # True
```
注意:本回答仅代表C知道的回答,不代表CSDN或OpenAI的观点。
阅读全文