Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Polynom:
- def __init__(self, s):
- self.coefs = self.reborn(s)
- def reborn(self, source):
- result = list()
- coefs = dict()
- source = source.split('+')
- for item in source:
- buffer = []
- for char in item:
- if char == '-':
- if len(buffer):
- result.append(buffer)
- buffer = ['-']
- else:
- buffer.append(char)
- if len(buffer):
- result.append(buffer)
- for item in result:
- wasX = False
- buffer = []
- isNowBase = True
- isNowPower = False
- base = 0
- power = 0
- for char in item:
- if char == 'x':
- wasX = True
- elif char == '^':
- isNowPower = True
- isNowBase = False
- if len(buffer):
- base = int(''.join(buffer))
- buffer = list()
- elif isNowBase:
- if char.isdigit() or char == '-':
- buffer.append(char)
- elif isNowPower:
- if char.isdigit():
- buffer.append(char)
- if len(buffer) and isNowPower:
- power += int(''.join(buffer))
- elif len(buffer) and isNowBase:
- base = int(''.join(buffer))
- if wasX:
- if power == 0:
- power = 1
- else:
- power = 0
- coefs[power] = base
- return coefs
- def __str__(self):
- return str(self.coefs)
- a = Polynom('123x^12+456x^13+789')
- print(a)
Add Comment
Please, Sign In to add comment