Guest User

Untitled

a guest
Jul 17th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. class Polynom:
  2. def __init__(self, s):
  3. self.coefs = self.reborn(s)
  4.  
  5. def reborn(self, source):
  6. result = list()
  7. coefs = dict()
  8.  
  9. source = source.split('+')
  10.  
  11. for item in source:
  12. buffer = []
  13. for char in item:
  14. if char == '-':
  15. if len(buffer):
  16. result.append(buffer)
  17. buffer = ['-']
  18. else:
  19. buffer.append(char)
  20. if len(buffer):
  21. result.append(buffer)
  22.  
  23. for item in result:
  24. wasX = False
  25. buffer = []
  26. isNowBase = True
  27. isNowPower = False
  28.  
  29. base = 0
  30. power = 0
  31.  
  32. for char in item:
  33. if char == 'x':
  34. wasX = True
  35. elif char == '^':
  36. isNowPower = True
  37. isNowBase = False
  38. if len(buffer):
  39. base = int(''.join(buffer))
  40. buffer = list()
  41. elif isNowBase:
  42. if char.isdigit() or char == '-':
  43. buffer.append(char)
  44. elif isNowPower:
  45. if char.isdigit():
  46. buffer.append(char)
  47.  
  48. if len(buffer) and isNowPower:
  49. power += int(''.join(buffer))
  50. elif len(buffer) and isNowBase:
  51. base = int(''.join(buffer))
  52.  
  53. if wasX:
  54. if power == 0:
  55. power = 1
  56. else:
  57. power = 0
  58.  
  59. coefs[power] = base
  60.  
  61. return coefs
  62.  
  63. def __str__(self):
  64. return str(self.coefs)
  65.  
  66.  
  67. a = Polynom('123x^12+456x^13+789')
  68. print(a)
Add Comment
Please, Sign In to add comment