66. 加一
給定一個(gè)由整數(shù)組成的非空數(shù)組所表示的非負(fù)整數(shù)爽锥,在該數(shù)的基礎(chǔ)上加一肃晚。
最高位數(shù)字存放在數(shù)組的首位秽荤, 數(shù)組中每個(gè)元素只存儲(chǔ)一個(gè)數(shù)字。
你可以假設(shè)除了整數(shù) 0 之外黄鳍,這個(gè)整數(shù)不會(huì)以零開頭推姻。
輸入: [1,2,3],輸出: [1,2,4]
解釋: 輸入數(shù)組表示數(shù)字 123框沟。
算法一:
def plusOne(self, digits: List[int]) -> List[int]:
return [int(i) for i in str(int(''.join(str(i) for i in digits)) + 1)]
算法二:
num = 0
for i in range(len(digits)):
num = num*10 + digits[i]
return [int(i) for i in str(num + 1)]
67. 二進(jìn)制求和
輸入: a = "11", b = "1"藏古,輸出: "100"
輸入: a = "1010", b = "1011",輸出: "10101"
算法:
def addBinary(self, a: str, b: str) -> str:
return bin(int(a,2)+int(b,2))[2:]
分析:int(x, base=10)函數(shù)默認(rèn)為10進(jìn)制忍燥,這里改為2進(jìn)制拧晕;bin()函數(shù)用來進(jìn)行二進(jìn)制數(shù)相加;得到的結(jié)果中含有0b的二進(jìn)制標(biāo)識(shí)符梅垄,需要去掉