一、题目内容

image.png

二、题解

解法1:

思路

代码

  1. public class Solution {
  2. public String solve (String s, String t) {
  3. if(s == null || s.length() == 0 || t == null || t.length() == 0){
  4. return "0";
  5. }
  6. int sl = s.length();
  7. int tl = t.length();
  8. // write code here
  9. StringBuilder longStr = new StringBuilder(sl>tl?s:t).reverse();
  10. StringBuilder shotStr = new StringBuilder(sl>tl?t:s).reverse();
  11. int[] nums = new int[sl+tl];
  12. int c = 0;//进位
  13. int k = 0;//当前位置
  14. for(int i = 0;i<shotStr.length();i++){
  15. c = 0;
  16. k = i;
  17. for(int j = 0;j<longStr.length();j++){
  18. int m = shotStr.charAt(i)-'0';
  19. int n = longStr.charAt(j)-'0';
  20. int curRes = m*n+c+nums[k];
  21. nums[k] = curRes % 10;
  22. c = curRes / 10;
  23. k++;
  24. }
  25. nums[k]+= c;
  26. }
  27. StringBuilder sb = new StringBuilder();
  28. for (int i = 0; i < nums.length; i++) {
  29. sb.append(nums[i]);
  30. }
  31. String res = sb.reverse().toString();
  32. if (res.charAt(0)=='0'){
  33. return res.substring(1);
  34. }else {
  35. return res;
  36. }
  37. }
  38. }