酒店行业网站建设方案,手机app开发需要什么技术,快手短链接生成,wordpress朋友圈图片不显示图片给定两个字符串形式的非负整数 num1 和num2 #xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库#xff08;比如 BigInteger#xff09;#xff0c; 也不能直接将输入的字符串转换为整数形式。 输入#xff1a;num1 11计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库比如 BigInteger 也不能直接将输入的字符串转换为整数形式。 输入num1 11, num2 123
输出134 字符串相加这道题其实对于很多人来说是有挑战性的因为有进位所以很多人对此就望而生畏但是今天看完我这篇博客后你会对你已经的恐惧的烟消云算我今天准备采取较为简单的方法来解决这道题 在数学中我们进场用这种进制的方式进行两数的加法运算我们在字符串中的加法运算也可以运用这种方式去解决问题 这种方式的对齐方式运算肯定是错误的所以我们不能从索引为0开始 所以我们应该从两个字符串的最后一个索引开始这样才能确定最后结果的准确性 int inum1.length()-1;//字符串num1的最后一位的索引int jnum2.length()-1;//字符串的num2的最后一位的索引int carry0;//进位数 while(i0||j0){} 对于字符串两个字符串的长度有的时候是不一样的所以我们肯定要对长度短的字符串进行操作补位但是直接操作字符串肯定会对算法的性能进行损耗所以我们在处理的时候做一点小小的改变 int ai0?(num1.charAt(i--)-0):0;int bj0?(num2.charAt(j--)-0):0; int numabcarry;carrynum/10;int cnum%10;sb.append(c); 所以我们最后将字符串反转就可以得到最后的结果
源码如下 public String addStrings(String num1, String num2) {StringBuilder sbnew StringBuilder();int inum1.length()-1;int jnum2.length()-1;int carry0;while(i0||j0){int ai0?(num1.charAt(i--)-0):0;int bj0?(num2.charAt(j--)-0):0;int numabcarry;carrynum/10;int cnum%10;sb.append(c);}if(carry1){sb.append(carry);}return sb.reverse().toString();
}