Expression Add Operators LeetCode solution in Python

1
class Solution:
2
def addOperators(self, num: str, target: int) -> List[str]:
3
s = num[0]
4
q = ["+", "-", "*", ""]
5
ans = []
6

7
def cal(w):
8
i = 1
9
while i < len(w) - 1:
10
if w[i] == "*":
11
q = int(w[i - 1]) * int(w[i + 1])
12
del w[i + 1]
13
del w[i]
14
w[i - 1] = q
15
continue
16
i += 2
17
i = 1
18
while i < len(w) - 1:
19
if w[i] == "+":
20
q = int(w[i - 1]) + int(w[i + 1])
21
del w[i + 1]
22
del w[i]
23
w[i - 1] = q
24
continue
25
elif w[i] == "-":
26
q = int(w[i - 1]) - int(w[i + 1])
27
del w[i + 1]
28
del w[i]
29
w[i - 1] = q
30
continue
31
i += 2
32
return w
33

34
def dfs(s, i):
35
nonlocal ans
36
if i == len(num):
37
x = ""
38
myl = []
39
for i in s:
40
if i not in ["+", "-", "*"]:
41
x += i
42
else:
43
myl.append(int(x))
44
myl.append(i)
45
x = ""
46
myl.append(int(x))
47
print(myl)
48
a = cal(myl)
49
print(a)
50
if a[0] == target:
51
ans.append(s)
52
return
53
for j in q:
54
dfs(s + j + num[i], i + 1)
55

56
dfs(s, 1)
57
return ans

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0