【Leetcode_總結】415. 字串相加 -python
阿新 • • 發佈:2018-12-17
Q:
給定兩個字串形式的非負整數 num1
和num2
,計算它們的和。
注意:
num1
和num2
的長度都小於 5100.num1
和num2
都只包含數字0-9
.num1
和num2
都不包含任何前導零。- 你不能使用任何內建 BigInteger 庫, 也不能直接將輸入的字串轉換為整數形式。
思路:首先題目說明不能使用Python庫 不能直接轉形 但是題目中最快的方法還是直接轉型的 如下:
class Solution: def addStrings(self, num1, num2): """ :type num1: str :type num2: str :rtype: str """ return str(int(num1) + int(num2))
或者:
執行用時為 56 ms 的範例
class Solution:
def addStrings(self, num1, num2):
"""
:type num1: str
:type num2: str
:rtype: str
"""
return str(eval(num1)+eval(num2))
如果不使用內建函式造作,思路就是將字串倒序,然後從第一位開始相加 程式碼如下:
class Solution: def addStrings(self, num1, num2): """ :type num1: str :type num2: str :rtype: str """ return str(self.str2int(num1)+self.str2int(num2)) def str2int(self, s): s = s[::-1] num = 0 for i, v in enumerate(s): offset = ord(v) - ord('0') num += offset * (10 ** i) return num
效率是很不好的