- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstringTransformation.py
More file actions
Latest commit
29 lines (18 loc) · 806 Bytes
/
Copy pathstringTransformation.py
File metadata and controls
29 lines (18 loc) · 806 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
defisValid(string: str) ->bool:
returnnot (string.count('1')+string.count('0')) == (string.count('A')+string.count('B')+string.count('C') +1)
defconvertStringToList(string) ->list:
return [xforxinstring]
defevaluate(string):
stringList=convertStringToList(string)
ifisValid(string):
return-1
forxinrange(0, len(stringList)-1, 2):
ifstringList[x+1] =='A':
stringList[x+2] =str(stringList[x] andstringList[x+2])
elifstringList[x+1] =='B':
stringList[x+2] =str(stringList[x] orstringList[x+2])
elifstringList[x+1] =='C':
stringList[x+2] =str(int(stringList[x]) ^int(stringList[x+2]))
returnstringList[-1]
string=input()
print(evaluate(string))