最近开始练习华为的上机题,发现网上有些代码运行时不是很符合题目要求,故加以整理,用测试用例亲测通过~
本文是在原有代码上改进,所以,首先要感谢原作者,原文链接
http://blog.csdn.net/dengpeng0419/article/details/47622727
http://blog.csdn.net/dengpeng0419/article/details/47622727
下面进入正题:
1.超长整数相加
java代码:
代码解析:
一定要注意,题目是“超长整数”,意味着读入的是字符串,而不是整数,所以,不能用下面的代码来读取键盘输入,
否则会报错误:
当然,一般整数的输入,这样读取ok
归纳总结:
初看题目,第一反应是可以用“大数值”来做,直接调用
觉得很easy,但别忘了,人家叫你用算法实现。考的还是字符串类的基础知识!
2.城市电话号码
java代码:
代码解析:
一定要注意,在第一步对所有位数的判断,是所有3个中有一个位数不正确,都判定为非法,但第一个允许两种情况(0或3),这时就需要()把第一个与其他两个区别开来,不然,得不到正确的判定 结果。
再者,在写判定条件时:
与
有相当大差别,在逻辑上也是不对的。
归纳总结:
操作字符串的基础知识,注意抓题眼,同时,测试用例要多试试题目没给出来的。
3.最小长方形
java代码:
这段代码与原文没多大差别,仅记录自己的学习过程
代码解析:
一定要注意,调用Math.max(a,b);Math.min(a,b)比较大小时,初值为:
归纳总结:
对java内置的一些函数要熟悉,只要不是写算法,必要时可直接调用
后面的会依次整理,督促自己,好好复习,奋斗!!!!