在 Python 中检查堆栈或队列中的移动是否可能
假设我们有一个二元列表,其中1表示推送操作,0表示堆栈或队列上的弹出操作。我们必须检查可能的操作集是否有效。
因此,如果输入类似于nums=[1,0,1,1,0,1],那么输出将为True,因为序列是[Push,Pop,Push,Push,Pop,Push]而我们不是从空列表中弹出元素,因此这些操作是有效的。
示例
让我们看看以下实现以获得更好的理解-
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