Python堆栈用法

99 阅读1分钟

Python的栈基本语法

class Stack(object):

    def __init__(self):
        self.items = []

    def is_empty(self):
        """判断是否为空集"""
        return self.items == []

    def push(self, item):
        """添加新元素到栈顶"""
        self.items.append(item)

    def pop(self):
        """删除栈顶元素"""
        return self.items.pop()

    def peek(self):
        """窥探栈顶元素"""
        return self.items[-1]

    def size(self):
        """查看栈的大小"""
        return len(self.items)

if __name__ == '__main__':

    stack = Stack()
    print(stack.is_empty())
    stack.push(2# 入栈
    stack.push(3# 入栈
    print(stack.size())
    print(stack.peek())
    stack.pop()  # 出栈
    print(stack.size())

Python的堆基本语法

螢幕截圖 2023-11-09 下午3.12.58.png

#!/usr/bin/env python3

  


def merge_triplets(lst):

i = 0

while i < len(lst) - 2:

if lst[i] == lst[i + 1] == lst[i + 2]:

# 合并连续三个相同数字

lst.pop(i + 2)

lst.pop(i + 1)

lst[i] *= 3

i = max(0, i - 1# 回退一个位置,以检查新合并的数字是否能够再次合并

else:

i += 1

return lst

  


# 示例

input_list = [1, 6, 2, 2, 2, 6, 9, 3, 3, 3, 9, 5, 5, 5, 6]

result = merge_triplets(input_list)

print(result)