p2 has me washed
This commit is contained in:
parent
ba2d3e9bf6
commit
5b3351c2b8
73
ARTHEVAL.py
Normal file
73
ARTHEVAL.py
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
def find_closing_p(s: str, opening_index: int) -> int:
|
||||||
|
skips = 0
|
||||||
|
for i, c in enumerate(s[opening_index + 1:]):
|
||||||
|
match c:
|
||||||
|
case ')':
|
||||||
|
if skips != 0:
|
||||||
|
skips -= 1
|
||||||
|
else:
|
||||||
|
return i + opening_index + 1
|
||||||
|
case '(':
|
||||||
|
skips += 1
|
||||||
|
|
||||||
|
|
||||||
|
def do_math(s: str) -> int:
|
||||||
|
tokens = []
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
for c in s:
|
||||||
|
if c.isdigit():
|
||||||
|
try:
|
||||||
|
tokens[i] += c
|
||||||
|
except IndexError:
|
||||||
|
tokens.append(c)
|
||||||
|
elif c in {'+', '-', '*', '/'}:
|
||||||
|
i += 1
|
||||||
|
tokens.append(c)
|
||||||
|
|
||||||
|
last_piece = tokens.pop(0)
|
||||||
|
result = 0
|
||||||
|
for piece in tokens:
|
||||||
|
result = eval(f'{last_piece}{piece}')
|
||||||
|
last_piece = str(result)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def do_parentheses(s: str) -> str:
|
||||||
|
if '(' in s:
|
||||||
|
opening_index: int = s.find('(')
|
||||||
|
closing_index: int = find_closing_p(s, opening_index)
|
||||||
|
|
||||||
|
sub_snp = s[opening_index + 1:closing_index]
|
||||||
|
|
||||||
|
return str(do_math(s[:opening_index] + do_parentheses(sub_snp)))
|
||||||
|
|
||||||
|
else:
|
||||||
|
if len(s) == 1:
|
||||||
|
return s
|
||||||
|
else:
|
||||||
|
return str(do_math(s))
|
||||||
|
|
||||||
|
|
||||||
|
# (5*6)-(4+(1))
|
||||||
|
def main():
|
||||||
|
s: str = input()
|
||||||
|
|
||||||
|
# Wish I could just use eval() but it uses pemdas
|
||||||
|
|
||||||
|
# Evaluate all parentheses
|
||||||
|
while '(' in s:
|
||||||
|
opening_index: int = s.find('(')
|
||||||
|
closing_index: int = find_closing_p(s, opening_index)
|
||||||
|
|
||||||
|
sub_snp = s[opening_index + 1:closing_index]
|
||||||
|
sub_s = s[opening_index:closing_index + 1]
|
||||||
|
|
||||||
|
s = s.replace(sub_s, do_parentheses(sub_snp))
|
||||||
|
|
||||||
|
print(do_math(s))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
13
GDCOTFI.py
Normal file
13
GDCOTFI.py
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import math
|
||||||
|
|
||||||
|
def main():
|
||||||
|
nums = []
|
||||||
|
|
||||||
|
for i in range(3):
|
||||||
|
nums.append(int(input()))
|
||||||
|
|
||||||
|
print(math.gcd(*nums))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Loading…
x
Reference in New Issue
Block a user