代码如下:
class TreeNode: def __init__(self, x): self.left=None self.right=None self.value=x def BuildTree(ceng, zhong): if len(ceng)==0: return None if len(ceng)==1: return TreeNode(ceng[0]) else: flag=TreeNode(ceng[0]) root=ceng[0] zong=zhong[:zhong.index(ceng[0])] cen=[] for i in ceng: if i in zong: cen.append(i) flag.left=BuildTree(cen,zong) cen = [] zong=zhong[zhong.index(ceng[0])+1:] for i in ceng: if i in zong: cen.append(i) flag.right=BuildTree(cen,zong) return flag def PrintLeafNode(root,node): if root==None: return if root.left==None and root.right==None: node.append(root.value) PrintLeafNode(root.left, node) PrintLeafNode(root.right, node) def PreTravel(root,node): if root==None: return node.append(root.value) PreTravel(root.left, node) PreTravel(root.right, node) def BackTravel(root, node): if root==None: return BackTravel(root.left, node) BackTravel(root.right, node) node.append(root.value) ceng=input().strip().split(" ") zhong=input().strip().split(" ") root=BuildTree(ceng, zhong) leaf=[] pre=[] back=[] PrintLeafNode(root, leaf) PreTravel(root, pre) BackTravel(root, back) print(" ".join(leaf)) print(" ".join(pre)) print(" ".join(back))
第二题:
代码如下:
def ac(list1): if len(list1)==1: return 1 count = 0 for i in range(len(list1)): if i == 0: pre = 0 back = int("".join(list1[i + 1:])) + 1 elif i == len(list1) - 1: pre = int("".join(list1[:i])) back =1 else: pre = int("".join(list1[:i])) back = int("".join(list1[i + 1:])) + 1 if list1[i] == '0': length = len(list1) - i - 1 tmp = (pre * (10 ** length)) count += tmp elif list1[i] == '1': length = len(list1) - i - 1 tmp = (pre * (10 ** length)) count += tmp count += (back) else: length = len(list1) - i - 1 k = pre + 1 tmp = k * (10 ** length) count += tmp return count list1=list(input().strip()) print(ac(list1))