Expression Add Operators LeetCode solution in Python
1class Solution:2def addOperators(self, num: str, target: int) -> List[str]:3s = num[0]4q = ["+", "-", "*", ""]5ans = []67def cal(w):8i = 19while i < len(w) - 1:10if w[i] == "*":11q = int(w[i - 1]) * int(w[i + 1])12del w[i + 1]13del w[i]14w[i - 1] = q15continue16i += 217i = 118while i < len(w) - 1:19if w[i] == "+":20q = int(w[i - 1]) + int(w[i + 1])21del w[i + 1]22del w[i]23w[i - 1] = q24continue25elif w[i] == "-":26q = int(w[i - 1]) - int(w[i + 1])27del w[i + 1]28del w[i]29w[i - 1] = q30continue31i += 232return w3334def dfs(s, i):35nonlocal ans36if i == len(num):37x = ""38myl = []39for i in s:40if i not in ["+", "-", "*"]:41x += i42else:43myl.append(int(x))44myl.append(i)45x = ""46myl.append(int(x))47print(myl)48a = cal(myl)49print(a)50if a[0] == target:51ans.append(s)52return53for j in q:54dfs(s + j + num[i], i + 1)5556dfs(s, 1)57return ans