栈和队列
面试题9:用两个栈实现队列
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, node): self.stack1.append(node) def pop(self): if self.stack2: return self.stack2.pop() else: while self.stack1: self.stack2.append(self.stack1.pop()) return self.stack2.pop()面试题10:斐波那契数列
题目一:求斐波那契数列的第n项。
写一个函数,输入n,求斐波那契数列的第n项,斐波那契数列的定义如下:
def fib (n): if n < 1: return -1 if (1 == n) or (2 == n): return 1 return fib(n-1) + fib(n-2) def main(): n = int(input("请输入求解第几项: ")) result = fib(n) print("结果为%d"%result) if __name__=='__main__': main()