檢查 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
廣告