67 lines
1.2 KiB
Python
67 lines
1.2 KiB
Python
# Part 2
|
|
digits = {
|
|
"one": 1,
|
|
"two": 2,
|
|
"three": 3,
|
|
"four": 4,
|
|
"five": 5,
|
|
"six": 6,
|
|
"seven": 7,
|
|
"eight": 8,
|
|
"nine": 9,
|
|
}
|
|
|
|
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
|
|
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()))
|
|
|
|
s = 0
|
|
for inp in inputs:
|
|
first, last = findFirstAndLastInt(inp)
|
|
s += first*10 + last
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|