python练习题

Blossom ·
更新时间:2024-11-13
· 758 次阅读

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。

class Solution: def reConstructBinaryTree(self, pre, tin): if not pre or not tin: return None root = TreeNode(pre.pop(0)) index = tin.index(root.val) root.left = self.reConstructBinaryTree(pre, tin[:index]) root.right = self.reConstructBinaryTree(pre, tin[index + 1:]) return root

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

class Solution: def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, node): self.stack1.append(node) def pop(self): if len(self.stack2) != 0: return self.stack2.pop() while len(self.stack1) !=0: self.stack2.append(self.stack1.pop()) return self.stack2.pop()

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

class Solution: def minNumberInRotateArray(self, rotateArray): # write code here length = len(rotateArray) if length == 0: return 0 elif length == 1: return rotateArray[0] else: for i in range(length-1): if rotateArray[i] > rotateArray[i+1]: return rotateArray[i+1] return rotateArray[length-1] class Solution: def minNumberInRotateArray(self, rotateArray): # write code here if not rotateArray: return 0 else: rotateArray.sort() return rotateArray[0] Null_Pan 原创文章 23获赞 21访问量 1073 关注 私信 展开阅读全文
作者:Null_Pan



python练习 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号