题目链接:https://leetcode-cn.com/problems/add-strings/
思路:
模拟,将相同数位对齐,从低到高逐位相加,如果当前位和超过 10,则向高位进一位
用i,j两个指针反序遍历字符串,carry表示进位,模拟计算
class Solution { public String addStrings(String num1, String num2) { StringBuilder s = new StringBuilder(); int i = num1.length() - 1, j = num2.length() - 1, carry = 0; while (i >= 0 || j >= 0 || carry != 0) { int x = i < 0 ? 0 : num1.charAt(i--) - ‘0‘; int y = j < 0 ? 0 : num2.charAt(j--) - ‘0‘; int sum = x + y + carry; s.append(sum % 10);//添加到字符串尾部 carry = sum / 10; } return s.reverse().toString();//对字符串反转 } }
415. 字符串相加 --LeetCode 每日一题 8.3
原文:https://www.cnblogs.com/NoWhiteBut/p/13425443.html