Guest User

Untitled

a guest
Dec 12th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. class Solution:
  2. def addOperators(self, num, target):
  3. if len(num) == 0: return []
  4.  
  5. def helper(start):
  6. if start == len(nums):
  7. if data[0] + data[1] == target:
  8. ret.append("".join(cache))
  9. return
  10.  
  11. operand = 0
  12. data0 = data[0]
  13. data1 = data[1]
  14.  
  15. for i in range(start, len(nums)):
  16. operand = operand * 10 + nums[i]
  17.  
  18. #add
  19. data[0] = data0 + data1
  20. data[1] = operand
  21. cache.append("+{:d}".format(operand))
  22. helper(i+1)
  23. cache.pop()
  24.  
  25. data[0] = data0 + data1
  26. data[1] = -operand
  27. cache.append("-{:d}".format(operand))
  28. helper(i+1)
  29. cache.pop()
  30.  
  31. data[0] = data0
  32. data[1] = data1 * operand
  33. cache.append("*{:d}".format(operand))
  34. helper(i+1)
  35. cache.pop()
  36.  
  37. if operand == 0:
  38. break
  39.  
  40.  
  41. nums = [int(e) for e in num]
  42. data = [0, 1]
  43. cache = []
  44. ret = []
  45.  
  46. operand = 0
  47. for i in range(len(nums)):
  48. operand = operand * 10 + nums[i]
  49.  
  50. data[1] = operand
  51. cache.append(str(operand))
  52. helper(i+1)
  53. cache.pop()
  54.  
  55. if operand == 0:
  56. break
  57.  
  58.  
  59. return ret
  60.  
  61.  
  62.  
  63. num = "105"
  64. target = 5
  65. print(Solution().addOperators(num, target))
Add Comment
Please, Sign In to add comment