题目就不写上来了,大家都有。
一、测试点2、3
首先测试点2、3,在我代码测试中应该是这样的,如果输入 +1.0E+1,输出则是 10. ,注意:最后面还多了一个小数点 " . " ,这就是导致测试点2、3过不去的原因,需要在最后判断一下。
去掉之后我就满分了
二、其他坑点
这道题其实还有其他的坑,下面是我遇到的,大家可以参考一下
1.别用String类型进行频繁的字符串拼接,这将导致内存超限,使用StringBuilder类
原因是:比如说下面代码片段
String str = "a";
str += "b";
System.out.println(str);
在方法区字符串常量池中,其实就生成了三个字符串,分别是"a","b","ab",就这意味着如果你拼接的字符串在字符串常量池中不存在,则会现在常量池中创建出来,而且拼接形成的新字符串也会在常量池中创建。这样如果进行频繁的字符串拼接,比如说拼接1000次相同的字符,则在字符串常量池中至少创建了1002个字符串,这将会极大的消耗内存。
而StringBuilder拼接则是在原字符串后追加,是不会形成新字符串的,它还有一个好兄弟叫StringBuffer,这个是线程安全,但是因为我们算法题都是在单线程中操作,不存在线程安全问题,因此一