我试图回答这个在字符串中添加两个数字并返回结果的 leetcode 问题。该代码适用于基本测试用例,但在隐藏测试用例中,代码无法返回正确的输出,而是返回一些不相关的值。我很难理解,有人可以帮忙吗?隐藏测试用例中给出的输入是: 输入 “3876620623801494171”“6529364523802684779” 输出 “-8040758926105372666” 预期 “10405985147604178950”
为什么会产生负值?
这是代码: 类解决方案 { public String addStrings(String num1, String num2) {
long a,b; a=Long.parseLong(num1); b=Long.parseLong(num2); a= a+b; num1=String.valueOf(a); return num1; } }
这是一个整数溢出。
Your Value == 10405985147604178950 Long.MAX_VALUE == 9223372036854775807
您可以使用 BigInteger 类来解决问题。