与2个链表相加的题是一个思路
时间复杂度:O(n+m),n,m为两个字符串的长度,因为需要遍历两个字符串,所以时间复杂度为O(n+m);
空间复杂度:O(n),n为两个字符串中长的那个字符串的长度,需要使用额外的n空间来保存计算结果。
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve (String s, String t) { Stack<Integer> stack = new Stack<>(); StringBuilder sb = new StringBuilder(); int sLenIndex = s.length() - 1; int tLenIndex = t.length() - 1; int jinwei = 0; while (sLenIndex >= 0 || tLenIndex >= 0 || jinwei != 0) { if (sLenIndex >= 0) { char a = s.charAt(sLenIndex); String a1 = String.valueOf(a); int a2 = Integer.parseInt(a1); jinwei += a2; sLenIndex--; } if (tLenIndex >= 0) { char b = t.charAt(tLenIndex); String b1 = String.valueOf(b); int b2 = Integer.parseInt(b1); jinwei += b2; tLenIndex --; } stack.push(jinwei % 10); jinwei = jinwei / 10; } while (!stack.isEmpty()) { sb.append(stack.pop()); } return sb.toString(); } }