题目描述

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
# -*- coding:utf-8 -*-
class Solution:
    def isSquenceOfBST(self, sequence):
        if len(sequence)<=2:
            return True
        root =sequence[-1]
        index=0
        res=True
        while index<len(sequence)-1 and sequence[index]<root:
            index+=1
        mark=index
        while index<len(sequence)-1 and sequence[index]>root:
            index+=1
        if index==len(sequence)-1:
            return self.isSquenceOfBST(sequence[:mark]) and self.isSquenceOfBST(sequence[mark:-1])
        else:
            return False

    def VerifySquenceOfBST(self, sequence):
        # write code here
        if sequence==[]:
            return False
        else:
            return self.isSquenceOfBST(sequence)

  

01-07 18:05