image.png

双指针

image.png
image.pngimage.pngimage.png
image.pngimage.pngimage.pngimage.png

  1. public String addStrings(String num1, String num2) {
  2. StringBuilder res = new StringBuilder("");
  3. int i = num1.length()-1,j=num2.length()-1,carry = 0;
  4. while(i>=0||j>=0){ //只要一个还有元素
  5. int n1 = i >= 0 ? num1.charAt(i) - '0' : 0; //超过下标之后设为0
  6. int n2 = j >= 0 ? num2.charAt(j) - '0' : 0;
  7. int tmp = n1 + n2 + carry;
  8. carry = tmp / 10;
  9. res.append(tmp % 10);
  10. i--;
  11. j--;
  12. }
  13. if(carry==1) //判断最后是否有进位
  14. res.append(1);
  15. return res.reverse().toString(); //需要进行反转
  16. }