code 字串相乘

2021-10-06 06:23:19 字數 1403 閱讀 4411

題目引自:

43. 字串相乘

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

示例 1:

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

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

num1num2的長度小於110。

num1num2只包含數字0-9

num1num2均不以零開頭,除非是數字 0 本身。

不能使用任何標準庫的大數型別(比如 biginteger)直接將輸入轉換為整數來處理

class solution 

string result;

for (int i=num2.size()-1; i>=0; --i)

if (carry != 0) sum_cur.insert(0, 1, char(carry+'0'));

//將兩個字串相加

int a=result.size()-1;

int b=sum_cur.size()-1;

carry = 0;

while (a >=0 || b >=0)

if (b >= 0)

r = r + s + carry;

carry = r / 10;

r = r % 10;

if (a>=0)

result[a] = char(r + '0');

else

result.insert(0, 1, char(r+'0'));

a--;

b--;

}if (carry != 0) result.insert(0, 1, char(carry+'0'));

}return result;

}};

執行結果:

通過顯示詳情

執行用時 :52 ms, 在所有 c++ 提交中擊敗了18.18%的使用者

記憶體消耗 :8.1 mb, 在所有 c++ 提交中擊敗了100.00%的使用者

(耗時太長了,還需要努力)

字串相乘

定給兩個以字串形式表示的非負整數 num1狀語從句 num2,報道檢視 num1狀語從句 num2的乘積,它們的乘積也表示為字串形式。示例1 輸入 num1 2 num2 3 輸出 6 示例2 輸入 num1 123 num2 456 輸出 56088 說明 num1狀語從句 num2的長度小於11...

字串相乘

給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。思路 經過學習,大致思路有兩種 第一種思路為進行每一位相乘運算時,同時處理進製,以每一位保持小於等於 9 大於等於 0 的數儲存到char陣列中。第二種思路為先進行每一位的相乘運算,儲存到c...

字串相乘

給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110。nu...