在 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

以上是 在 Python 中检查堆栈或队列中的移动是否可能 的全部内容, 来源链接: utcz.com/z/352715.html

回到顶部