【发布时间】:2015-03-24 17:19:05
【问题描述】:
请帮我写一个函数,将两个堆栈中的数字按位置相加,并将结果作为列表返回。
这里的代码是栈上的操作:
stack_a = Stack()
stack_a.push(1)
stack_a.push(2)
stack_b = Stack()
stack_b.push(6)
stack_b.push(8)
result = add(stack_a , stack_b)
print(result)
这里是 Stack 类的定义
class Stack:
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[len(self.items) - 1]
def size(self):
return len(self.items)
这是我到目前为止所做的:
def add(first, second):
return first.pop() + second.pop()
我得到了 10 个,它只考虑了 stack_a.push(2) 和 stack_a.push(10) 的添加。请帮助我改进我目前所取得的成果。
【问题讨论】:
-
你需要某种循环
-
列表中应该包含什么?如果两个堆栈的大小不同怎么办?在执行此操作的过程中是否可以销毁(可能会删除所有)两个堆栈中的项目?