67 lines
1.2 KiB
Python
Raw Normal View History

# Part 2
digits = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5,
"six": 6,
"seven": 7,
"eight": 8,
"nine": 9,
}
2023-12-01 13:22:00 +01:00
def replaceWords(inp):
# Words might overlap - eightwo
transformed = []
result = []
for i in digits:
if i in inp:
transformed.append(inp.replace(i, str(digits[i])))
print(transformed)
for i in range(len(transformed)):
for j in range(len(transformed[i])):
if transformed[i][j].isdigit():
try:
if result[i] != transformed[i][j]:
result.append(transformed[i][j])
except IndexError:
result.append(transformed[i][j])
print(result)
return inp
# Part 1
2023-12-01 13:22:00 +01:00
def findFirstAndLastInt(inp):
first = 0
last = 0
for i in inp:
if i.isdigit():
if first == 0:
first = i
else:
last = i
if last == 0:
last = first
return int(first), int(last)
def main():
inputs = []
with open("input.in", "r") as f:
for line in f:
# inputs.append(line.strip()) # Part 1
inputs.append(replaceWords(line.strip()))
2023-12-01 13:22:00 +01:00
s = 0
for inp in inputs:
first, last = findFirstAndLastInt(inp)
s += first*10 + last
if __name__ == "__main__":
main()