检查 Python 中栈或队列的操作是否可能
假设我们有一个二进制列表,其中 1 表示入栈操作,0 表示出栈操作,对栈或队列进行操作。我们必须检查可能的运算集是否有效。
因此,如果输入像 nums = [1,0,1,1,0,1],则输出将为 True,因为序列为 [入栈,出栈,入栈,入栈,出栈,入栈],因为我们不会从空列表中弹出元素,因此这些运算有效。
为了解决这个问题,我们将按照以下步骤操作 -
- push_count := 0
- 对于范围 0 到 nums 大小的 i,操作
- 如果 nums[i] 为 1,则
- push_count := push_count + 1
- 否则,
- push_count := push_count - 1
- 如果 push_count < 0,则
- 返回 False
- 如果 nums[i] 为 1,则
- 返回 True
范例
让我们来看以下实现以获得更好的理解 -
def solve(nums): push_count = 0 for i in range (len(nums)): if nums[i]: push_count += 1 else: push_count -= 1 if push_count < 0: return False return True nums = [1,0,1,1,0,1] print(solve(nums))
输入
[1,0,1,1,0,1]
输出
True
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP