Strange error output.
I would like to give some feedback about output from Checkio assertions.
It says:
Your result: 'one hundred'
Right result: 'one hundred'
I have no idea what's wrong.
My code:
FIRST_TEN = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] SECOND_TEN = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"] OTHER_TENS = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"] HUNDRED = "hundred" def checkio(number): repr = {"0": "", "00": "", "000": ""} for i in range(1, 10): repr[str(i)] = FIRST_TEN[i-1] for i in range(10, 20): repr[str(i)] = SECOND_TEN[i-10] for i in range(20, 91, 10): repr[str(i)] = OTHER_TENS[i // 10 - 2] num = str(number)[::-1] string = "" skip = 0 for i, x in enumerate(num): if skip > 0: skip -= 1 continue if len(num) > i+2: string += repr[num[i+2]] + " " + HUNDRED + " " + checkio(num[i+1] + x) skip = 2 elif len(num) > i+1: if num[i+1] == "1": string += repr[num[i+1] + x] else: m = repr[num[i+1] + "0"] + " " + repr[x] if len(m) > 0 and m[0] == " ": m = m[1:] if len(m) > 0 and m[-1] == " ": m = m[:-1] string += m skip = 1 else: string += repr[x] return string if __name__ == '__main__': #These "asserts" using only for self-checking and not necessary for auto-testing assert checkio(4) == 'four', "1st example" assert checkio(133) == 'one hundred thirty three', "2nd example" assert checkio(12) == 'twelve', "3rd example" assert checkio(101) == 'one hundred one', "4th example" assert checkio(212) == 'two hundred twelve', "5th example" assert checkio(40) == 'forty', "6th example" assert not checkio(212).endswith(' '), "Don't forget strip whitespaces at the end of string"
From: http://www.checkio.org/mission/speechmodule/solve/
HTTP_USER_AGENT:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36