日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode43. 字符串相乘 经典大数+和*

發布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode43. 字符串相乘 经典大数+和* 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

43. 字符串相乘

難度中等264

給定兩個以字符串形式表示的非負整數?num1?和?num2,返回?num1?和?num2?的乘積,它們的乘積也表示為字符串形式。

示例 1:

輸入: num1 = "2", num2 = "3" 輸出: "6"

示例?2:

輸入: num1 = "123", num2 = "456" 輸出: "56088"

說明:

  • num1?和?num2?的長度小于110。
  • num1?和?num2?只包含數字?0-9。
  • num1?和?num2?均不以零開頭,除非是數字 0 本身。
  • 不能使用任何標準庫的大數類型(比如 BigInteger)直接將輸入轉換為整數來處理
  • class Solution {/*** 計算形式* num1* x num2* ------* result*/// 計算結果String res = "0";public String multiply(String num1, String num2) {if (num1.equals("0") || num2.equals("0")) {return "0";}// num2 逐位與 num1 相乘for (int i = num2.length() - 1; i >= 0; i--) {int carry = 0;// 保存 num2 第i位數字與 num1 相乘的結果StringBuilder temp = new StringBuilder();// 補 0 for (int j = 0; j < num2.length() - 1 - i; j++) {temp.append(0);}int n2 = num2.charAt(i) - '0';// num2 的第 i 位數字 n2 與 num1 相乘for (int j = num1.length() - 1; j >= 0 || carry != 0; j--) {int n1 = j < 0 ? 0 : num1.charAt(j) - '0';int product = (n1 * n2 + carry) % 10;temp.append(product);carry = (n1 * n2 + carry) / 10;}// 將當前結果與新計算的結果求和作為新的結果res = addStrings(res, temp.reverse().toString());}return res;}/*** 對兩個字符串數字進行相加,返回字符串形式的和*/public String addStrings(String num1, String num2) {StringBuilder builder = new StringBuilder();int carry = 0;for (int i = num1.length() - 1, j = num2.length() - 1;i >= 0 || j >= 0 || carry != 0;i--, j--) {int x = i < 0 ? 0 : num1.charAt(i) - '0';int y = j < 0 ? 0 : num2.charAt(j) - '0';int sum = (x + y + carry) % 10;builder.append(sum);carry = (x + y + carry) / 10;}return builder.reverse().toString();} }

    ?

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的leetcode43. 字符串相乘 经典大数+和*的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。