You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
10 months ago
|
lines = [i for i in open("input.txt", 'r').read().splitlines()]
|
||
|
|
||
|
sum = 0
|
||
|
nonqual = ['0','1','2','3','4','5','6','7','8','9','.']
|
||
|
|
||
|
for i in range(len(lines)):
|
||
|
columns = len(lines[i])
|
||
|
j = 0
|
||
|
while j < columns:
|
||
|
if lines[i][j].isnumeric():
|
||
|
num = ""
|
||
|
valid = False
|
||
|
for k in range(len(lines[i])):
|
||
|
if j+k >= columns:
|
||
|
break
|
||
|
if lines[i][j+k].isnumeric():
|
||
|
num += lines[i][j+k]
|
||
|
else:
|
||
|
break
|
||
|
lennum = len(num)
|
||
|
for x in range(0 if j == 0 else j-1, columns if j + lennum == columns else j+lennum+1):
|
||
|
if i != 0:
|
||
|
if not lines[i-1][x] in nonqual:
|
||
|
valid = True
|
||
|
if i != len(lines)-1:
|
||
|
if not lines[i+1][x] in nonqual:
|
||
|
valid = True
|
||
|
if j != 0 and not lines[i][j-1] in nonqual:
|
||
|
valid = True
|
||
|
if j+lennum != columns and not lines[i][j+lennum] in nonqual:
|
||
|
valid = True
|
||
|
if valid:
|
||
|
sum += int(num)
|
||
|
j += lennum
|
||
|
j += 1
|
||
|
|
||
|
print(sum)
|