project euler 89
27 Luglio 2016
Si deve calcolare il totale dei caratteri risparmiati durante la semplificazione dei numeri romani.
Ci ho messo un po’ a capirlo e continuavo a calcolare il totale dei caratteri della lista corretta….
import time def filter_romans(path): with open(path) as inputfile: romans = [num.strip() for num in inputfile] startchr = sum([len(r) for r in romans]) for bad, correct in [("VIIII", "IX"), ("IIII", "IV"), ("LXXXX", "XC"), ("XXXX", "XL"), ("DCCCC", "CM"), ("CCCC", "CD"),]: for roman in romans: index = romans.index(roman) if bad in roman: romans[index] = roman.replace(bad, correct) return startchr - sum([len(r) for r in romans]) if __name__ == "__main__": start = time.time() result = filter_romans(r"p089_roman.txt") print "euler 89: %s\nElapsed time %ss." % (result, time.time() - start)
Commenti recenti