第一次玩Leetcode,对代码提交格式不了解,提交了一上午,略尴尬
leetcode确实有很多有意思的地方,不像以前做各个高校ACM练习,leetcode会给出错误信息(哪个数据的错了),也会提供测试用例自定义窗口,你可以自己设置测试样例
对于输出结果会有个比较窗口,出现你的程序和源程序结果比对,帮你快速定位错误原因
此外,leetcode只需要你写核心代码部分,读取输入函数,函数调用都不需要自己做,在程序提交时,leetcode会自动补全,同时,也就要求我们写的核心代码部分必须按照leetcode规定的格式来写。
Python(像我这种习惯了C语言的人,刚开始就直接自己写了个函数就扔上面去,结果就是找不到Slution类)
C++
JAVA
C语言
主要是照着它的格式写,框框里就是leetcode提交需要的接口,你只需要实现这个接口就行了。
273. Integer to English Words
Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231 - 1.
For example,
123 -> "One Hundred Twenty Three"
12345 -> "Twelve Thousand Three Hundred Forty Five"
1234567 -> "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
Python实现:
class Solution(object):
def __init__(self):
self.units = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Eleven',
'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Nineteen', 'Twenty']
self.tens = ['', 'Ten', 'Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety']
def numberToWords(self, num):
if num > 999999999:
if num % 1000000000 == 0:
return self.numberToWords(num / 1000000000) + " Billion"
else:
return self.numberToWords(num / 1000000000) + " Billion " + self.numberToWords(num % 1000000000)
elif num > 999999:
if num % 1000000 == 0:
return self.numberToWords(num / 1000000) + " Million"
else:
return self.numberToWords(num / 1000000) + " Million " + self.numberToWords(num % 1000000)
elif num > 999:
if num % 1000 == 0:
return self.numberToWords(num / 1000) + " Thousand"
else:
return self.numberToWords(num / 1000) + " Thousand " + self.numberToWords(num % 1000)
elif num > 99:
if num % 100 == 0:
return self.units[num / 100] + " Hundred"
else:
return self.units[num / 100] + " Hundred " + self.numberToWords(num % 100)
elif num > 20:
if num % 10 == 0:
return self.tens[(num / 10)]
else:
return self.tens[(num / 10)] + " " + self.units[num % 10]
else:
return self.units[num]