LeetCode 43 字串相乘

2021-09-14 05:38:33 字數 1097 閱讀 3235

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

示例 1:

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

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

num1num2的長度小於110。

num1num2只包含數字0-9

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

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

從兩個字串的尾部開始,逐一成對遍歷,一直遍歷到兩個字串的頭部,我們要將成對的數相乘,並錯位累加到一起。用vec陣列儲存歷史的累加結果,該陣列的每乙個元素代表數的一位。在遍歷過程中,將兩個字元所代表的數相乘,得到的兩位數分為十位和個位。將得到的兩位數與個位在vec陣列中對應的數相加,並%10得到該個位新的數,然後將加和/10並加上vec上十位對應的數,這樣就更新了十位的數。如此以上,當退出迴圈後,vec陣列中就按位儲存了乘積結果。所以我們將vec陣列從前到後遍歷,並將數變成對應的字元,加到ans字串後面。在遍歷時要注意從第乙個非0的數開始。這樣遍歷結束後,如果乘積結果不為0,那麼直接返回ans;如果乘積結果為0,那麼此時ans是空的,所以我們要手動返回「0」。

class solution 

}for(int i : vec)

return ans.size() == 0? "0" : ans;

}};

LeetCode43 字串相乘

給定兩個以字串形式表示的非負整數num1和num2,返回num1和num2的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 題目分析 如果兩個字串中有乙個為0,則結果是0 否則的話,將其中乙...

LeetCode43字串相乘

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

leetcode43 字串相乘

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