这几道题目更多地不是侧重算法,而是侧重编程语言的基础,corner cases和edge cases是否能够考虑周全。
Top1 模拟加法
Add Two Numbers
给定2个链表,表示两个数,模拟加法,返回的和用链表的形式表示,解决的方法是逐个节点处理。
Add Binary
给定2个string表示的二进制数,模拟加法,返回的和用string的形式表示,解决的方法是逐个数字处理。
Add String
给定两个string表示的十进制数,模拟加法,返回的和用string的形式表示,解决的方法类似上面。
Top2 模拟除法
Divide Two Numbers
模拟除法,尽可能快,不能使用乘法和取模运算,解决的方法非常有意思,化整为零,不断地将除数翻倍。由于不允许使用乘法,所以使用左移代替了乘法。