Skip to content

Instantly share code, notes, and snippets.

@loudambiance
Created December 18, 2021 01:22
Show Gist options
  • Save loudambiance/b884fc83dcc5921f96dc8336c161121a to your computer and use it in GitHub Desktop.
Save loudambiance/b884fc83dcc5921f96dc8336c161121a to your computer and use it in GitHub Desktop.
test = False
file = 'data/task10test.txt' if test else 'data/task10.txt'
with open(file) as f:
lines = f.read().splitlines()
opencharacters = ['[', '{','\'','<']
def bufferReverse(buffer):
score = 0
buffer.reverse()
for character in buffer:
if character == '\'':
score *= 5
score += 1
if character == '[':
score *= 5
score += 2
if character == '{':
score *= 5
score += 3
if character == '<':
score *= 5
score += 4
return score
scores = []
for line in lines:
buffer = []
for character in line:
tmp = character.replace('(','\'')
if tmp == "}":
i=1
if tmp in opencharacters:
buffer.append(tmp)
else:
if len(buffer) > 0:
if ord(buffer[-1])+2 == ord(tmp):
buffer.pop()
continue
buffer = []
break
if len(buffer) != 0:
scores.append(bufferReverse(buffer))
scores.sort()
print(scores[int(len(scores) / 2)])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment