Untitled

 avatar
unknown
plain_text
2 years ago
1.2 kB
17
Indexable
#part 1
def get_cal_value(seq):
    #remove letters
    clean = re.sub('\D', '', seq)
    return (int(clean[0]) * 10) + int(clean[-1])

sum([get_cal_value(i) for i in inputs])

#part 2
number_words = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]

valid_digits = [str(i) for i in list(range(1,10))] + number_words)

outputs = []

for starting_word in inputs:
    #find first digit
    for i in range(1, len(starting_word)+1):
        string_to_check = starting_word[:i]
        if any(digit in string_to_check for digit in valid_digits):
            for word, number in number_dict.items():
                string_to_check = string_to_check.replace(word, str(number))
            first_digit = re.sub('\D', '', string_to_check)
            break
    #find second digit
    for i in range(1, len(starting_word)+1):
        string_to_check = starting_word[-i:]
        if any(digit in string_to_check for digit in valid_digits):
            for word, number in number_dict.items():
                string_to_check = string_to_check.replace(word, str(number))
            second_digit = re.sub('\D', '', string_to_check)
            break
    outputs.append(int(first_digit) * 10 + int(second_digit))

sum(outputs)
Editor is loading...
Leave a Comment