剑指Offer(Python语言)面试题9,10

mac2022-06-30  24

栈和队列

面试题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()

 

 

 

 

 

 

最新回复(0)