def loop_main(temp):
    flds = temp.replace("\"", "").replace("[[",
                                          "").replace("]]",
                                                      "").rstrip().split("],[")

    ope_t = OperateTreeNode()

    root = ope_t.createTreeNode(flds[0])
    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    L = int(flds[1])
    R = int(flds[2])
    print("L = {0:d}, R = {1:d}".format(L, R))

    sl = Solution()
    time0 = time.time()

    result = sl.trimBST(root, L, R)

    time1 = time.time()

    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #2
0
def loop_main(temp):
    str_args = temp.replace("\"", "").replace("[[", "").replace("]]",
                                                                "").rstrip()
    flds = str_args.split("],[")

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds[0])
    p = ope_t.createTreeNode(flds[1])
    q = ope_t.createTreeNode(flds[2])

    print("root = \n{0}".format((ope_t.treeToStaircaseString(root))))
    print("root = {0}\n".format(ope_t.tree2str(root)))
    print("p = \n{0}".format((ope_t.treeToStaircaseString(p))))
    print("p = {0}\n".format(ope_t.tree2str(p)))
    print("q = \n{0}".format((ope_t.treeToStaircaseString(q))))
    print("q = {0}\n".format(ope_t.tree2str(q)))

    sl = Solution()
    time0 = time.time()

    result = sl.lowestCommonAncestor(root, p, q)

    time1 = time.time()

    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #3
0
def loop_main(temp):
    flds = temp.replace("\"", "").replace("[[",
                                          "").replace("]]",
                                                      "").rstrip().split("],[")

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds[0])
    target = int(flds[1])

    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))
    print("target = {0:d}\n".format(target))

    sl = Solution()
    time0 = time.time()

    result = sl.removeLeafNodes(root, target)

    time1 = time.time()

    cd = Codec()

    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("result = [{0}]".format(cd.serialize(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #4
0
def loop_main(temp):
    temp = re.sub('#.*', "", temp)
    temp = re.sub('//.*', "", temp)
    if len(temp) == 0:
        return
        
    flds = temp.replace("\"","").replace("[","").replace("]","").rstrip()

    ope_t = OperateTreeNode()
    codec = Codec2()

    if len(flds) > 0:
        root = codec.deserialize(flds)
      # root = ope_t.createTreeNode(flds)
    else:
        root = None
    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    time0 = time.time()

    root = codec.deserialize(flds)
    result = codec.serialize(root)

    time1 = time.time()

    print("result = [{0}]".format(result))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #5
0
def loop_main(temp):
    flds = temp.replace("\"","").replace("[","").replace("]","").rstrip()
    n = int(flds)
    print("n = {0:d}".format(n))

    sl = Solution()
    time0 = time.time()

    result = sl.allPossibleFBT(n)

    time1 = time.time()

    cd = Codec()
    print("result = [")
    for i, node in enumerate(result):
        if i == 0:
            print(" [{0}]".format(cd.serialize(node)))
        else:
            print(",[{0}]".format(cd.serialize(node)))
    print("]")

    ope_t = OperateTreeNode()
    for i, node in enumerate(result):
        print("result[{0:d}] = \n{1}".format(i, ope_t.treeToStaircaseString(node)))
    print()
    for i, node in enumerate(result):
        print("result[{0:d}] = {1}".format(i, ope_t.tree2str(node)))
    print()

    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #6
0
def loop_main(temp):
    temp = re.sub('#.*', "", temp)
    temp = re.sub('//.*', "", temp)
    if len(temp) == 0:
        return

    flds = temp.replace("\"", "").replace("[[",
                                          "").replace("]]",
                                                      "").rstrip().split("],[")

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds[0])
    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    k = int(flds[1])
    print("k = {0:d}".format(k))

    sl = Solution()
    time0 = time.time()

    result = sl.kthSmallest(root, k)

    time1 = time.time()
    print("result = {0:d}".format(result))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #7
0
def loop_main(temp):
    flds = temp.replace("\"", "").replace("[", "").replace("]", "").rstrip()

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds)
    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    sl = Solution()
    time0 = time.time()

    result = sl.convertBST(root)

    time1 = time.time()
    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    str_args = temp.replace("\"","").replace("[[","").replace("]]","").rstrip()
    flds = str_args.split("],[")

    ope_t = OperateTreeNode()

    s = ope_t.createTreeNode(flds[0])
    print("s = \n{0}".format(ope_t.treeToStaircaseString(s)))
    print("s = {0}".format(ope_t.tree2str(s)))

    t = ope_t.createTreeNode(flds[1])
    print("t = \n{0}".format(ope_t.treeToStaircaseString(t)))
    print("t = {0}".format(ope_t.tree2str(t)))

    sl = Solution()
    time0 = time.time()
    result = sl.isSubtree(s, t)

    time1 = time.time()

    print("result = {0}".format(result))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #9
0
def loop_main(temp):
    flds = temp.replace("\"","").replace("[[","").replace("]]","").rstrip().split("],[")

    ope_t = OperateTreeNode()

    root1 = ope_t.createTreeNode(flds[0])
    print("root1 = \n{0}".format(ope_t.treeToStaircaseString(root1)))
    print("root1 = {0}".format(ope_t.tree2str(root1)))

    root2 = ope_t.createTreeNode(flds[1])
    print("root2 = \n{0}".format(ope_t.treeToStaircaseString(root2)))
    print("root2 = {0}".format(ope_t.tree2str(root2)))

    sl = Solution()
    time0 = time.time()

    result = sl.leafSimilar(root1, root2)

    time1 = time.time()

    print("result = {0}".format(result))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    str_args = temp.replace("\"", "").replace("[[", "").replace("]]",
                                                                "").rstrip()
    flds = str_args.split("],[")

    ope_t = OperateTreeNode()
    t1 = ope_t.createTreeNode(flds[0])
    t2 = ope_t.createTreeNode(flds[1])
    print("t1 = \n{0}".format(ope_t.treeToStaircaseString(t1)))
    print("t1 = {0}".format(ope_t.tree2str(t1)))
    print("t2 = \n{0}".format(ope_t.treeToStaircaseString(t2)))
    print("t2 = {0}".format(ope_t.tree2str(t2)))

    sl = Solution()
    time0 = time.time()

    result = sl.mergeTrees(t1, t2)

    time1 = time.time()

    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #11
0
def loop_main(temp):
    temp = re.sub('#.*', "", temp)
    temp = re.sub('//.*', "", temp)
    if len(temp) == 0:
        return

    flds = temp.replace("\"", "").replace("[", "").replace("]", "").rstrip()

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds)
    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    sl = Solution()
    time0 = time.time()

    sl.recoverTree(root)

    time1 = time.time()

    print("result = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("result = {0}".format(ope_t.tree2str(root)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    flds = temp.replace("\"", "").replace("[[",
                                          "").replace("]]",
                                                      "").rstrip().split("],[")

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds[0])
    to_delete = [int(n) for n in flds[1].split(",")]

    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))
    print("to_detele = {0}\n".format(to_delete))

    sl = Solution()
    time0 = time.time()

    result = sl.delNodes(root, to_delete)

    time1 = time.time()

    cd = Codec()
    for i, node in enumerate(result):
        if i == 0:
            print("result = [[{0}]".format(cd.serialize(node)), end="")
        else:
            print(",[{0}]".format(cd.serialize(node)), end="")
    print("]\n")

    for i, node in enumerate(result):
        print("result[{0:d}] = \n{1}".format(
            i, ope_t.treeToStaircaseString(node)))
    print()
    for i, node in enumerate(result):
        print("result[{0:d}] = {1}".format(i, ope_t.tree2str(node)))
    print()

    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    flds = temp.replace("\"", "").replace("[", "").replace("]", "").rstrip()
    nums = [int(n) for n in flds.split(",")]
    print("nums = {0}".format(nums))

    sl = Solution()
    time0 = time.time()
    result = sl.sortedArrayToBST(nums)

    time1 = time.time()

    ope_t = OperateTreeNode()
    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #14
0
def loop_main(temp):
    flds = temp.replace("\"", "").replace("[", "").replace("]", "").rstrip()

    preorder = [int(fld) for fld in flds.split(",")]
    print("preorder = {0}".format(preorder))

    sl = Solution()
    time0 = time.time()

    result = sl.bstFromPreorder(preorder)

    time1 = time.time()

    ope_t = OperateTreeNode()
    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #15
0
def loop_main(temp):
    n = int(temp.replace("[", "").replace("]", "").rstrip())
    print("num = {0:d}".format(n))

    sl = Solution()
    time0 = time.time()

    result = sl.generateTrees(n)

    time1 = time.time()

    ope_t = OperateTreeNode()
    for i, res in enumerate(result):
        print("result[{0:d}] = \n{1}".format(
            i, ope_t.treeToStaircaseString(result[i])))
        print("result[{0:d}] = {1}".format(i, ope_t.tree2str(result[i])))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    flds = temp.replace("\"", "").replace("[[",
                                          "").replace("]]",
                                                      "").rstrip().split("],[")

    preorder = [int(n) for n in flds[0].split(",")]
    inorder = [int(n) for n in flds[1].split(",")]
    print("preorder = {0}, inorder = {1}".format(preorder, inorder))

    sl = Solution()
    time0 = time.time()

    result = sl.buildTree(preorder, inorder)

    time1 = time.time()

    ope_t = OperateTreeNode()
    print("result = \n{0}".format(ope_t.treeToStaircaseString(result)))
    print("result = {0}".format(ope_t.tree2str(result)))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    flds = temp.replace("\"", "").replace("[", "").replace("]", "").rstrip()

    ope_t = OperateTreeNode()
    if len(flds) > 0:
        root = ope_t.createTreeNode(flds)
    else:
        root = None

    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    sl = Solution()
    time0 = time.time()

    result = sl.levelOrderBottom(root)

    time1 = time.time()

    print("result = {0}".format(result))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    flds = temp.replace("\"", "").replace(", ", ",").rstrip().split("],[[[")
    cmds = flds[0].replace("[[", "").split(",")

    node_flds = (flds[1].split("]],["))[0]
    ope_t = OperateTreeNode()

    if len(node_flds) > 0:
        mynode = ope_t.createTreeNode(node_flds)
    else:
        mynode = None

    print("mynode = \n[{0}]".format(ope_t.treeToStaircaseString(mynode)))

    sl = Solution()
    time0 = time.time()

    sl.main(cmds, mynode)

    time1 = time.time()

    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
def loop_main(temp):
    flds = temp.replace("\"","").replace("[","").replace("]","").rstrip()

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds)
    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    sl = Solution()
    time0 = time.time()

    result = sl.findDuplicateSubtrees(root)

    time1 = time.time()

    ope_t = OperateTreeNode()
    print("result = [", end = "")
    for i, node in enumerate(result):
        if i == 0:
            print(" [{0}]".format(ope_t.tree2str(node)), end = "")
        else:
            print(" ,[{0}]".format(ope_t.tree2str(node)), end = "")
    print(" ]")
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))
예제 #20
0
def loop_main(temp):
    str_args = temp.replace("\"", "").replace("[[", "").replace("]]",
                                                                "").rstrip()
    flds = str_args.split("],[")

    ope_t = OperateTreeNode()
    root = ope_t.createTreeNode(flds[0])
    print("root = \n{0}".format(ope_t.treeToStaircaseString(root)))
    print("root = {0}".format(ope_t.tree2str(root)))

    sum = int(flds[1].replace("sum = ", ""))
    print("sum = {0:d}".format(sum))

    sl = Solution()
    time0 = time.time()

    result = sl.pathSum(root, sum)

    print("result = {0:d}".format(result))

    time1 = time.time()

    print("result = {0:d}".format(result))
    print("Execute time ... : {0:f}[s]\n".format(time1 - time0))