dfs,记录每三个数最后一个等于前两个的和,不符合或长度大于1且第一位为0剪枝

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param arr string字符串 
# @return bool布尔型
#
class Solution:
    def AdditiveArray(self , arr: str) -> bool:
        # write code here
        def dfs(arr, t):
            if not arr and len(t) >= 3 and t[-1] == t[-2] +  t[-3]:
                return True
            for i in range(len(arr)):
                c = arr[:i + 1]
                if len(c) > 1 and c[0] == "0":
                    continue
                c = int(c)
                if len(t) < 2 or t[-2] + t[-1] == c:
                    if dfs(arr[i + 1:], t + [c]):
                        return True
            return False
        return dfs(arr, [])