一、题目内容
二、题解
解法1:
思路
代码
public class Solution { public String solve (String s, String t) { if(s == null || s.length() == 0 || t == null || t.length() == 0){ return "0"; } int sl = s.length(); int tl = t.length(); // write code here StringBuilder longStr = new StringBuilder(sl>tl?s:t).reverse(); StringBuilder shotStr = new StringBuilder(sl>tl?t:s).reverse(); int[] nums = new int[sl+tl]; int c = 0;//进位 int k = 0;//当前位置 for(int i = 0;i<shotStr.length();i++){ c = 0; k = i; for(int j = 0;j<longStr.length();j++){ int m = shotStr.charAt(i)-'0'; int n = longStr.charAt(j)-'0'; int curRes = m*n+c+nums[k]; nums[k] = curRes % 10; c = curRes / 10; k++; } nums[k]+= c; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < nums.length; i++) { sb.append(nums[i]); } String res = sb.reverse().toString(); if (res.charAt(0)=='0'){ return res.substring(1); }else { return res; } }}