415. 字符串相加
2023-07-18 01:28 作者:目標(biāo)力扣Knight | 我要投稿

方法一:高精度加法
將字符串轉(zhuǎn)化為數(shù)字構(gòu)成的數(shù)組,先分別逆序。然后將其按照較長(zhǎng)數(shù)組對(duì)齊,從最低位開(kāi)始累加,將每次兩個(gè)數(shù)組之和與10取模數(shù)后的余數(shù)存入數(shù)組,再輸出,最后將其轉(zhuǎn)換為字符串即可,Python可以使用map函數(shù),C++只能遍歷硬轉(zhuǎn)。
Python版本
C++版本
復(fù)雜度分析
時(shí)間復(fù)雜度:O(N)。令兩數(shù)組中較長(zhǎng)數(shù)組長(zhǎng)度為n,那么轉(zhuǎn)換為數(shù)字構(gòu)成的數(shù)組,消耗2N,逆序遍歷2N,計(jì)算復(fù)雜度為N,輸出后轉(zhuǎn)化為字符串為N,則最終復(fù)雜度約為6N;
空間復(fù)雜度:O(N)。分別需要兩個(gè)數(shù)組存儲(chǔ)轉(zhuǎn)換為數(shù)字的數(shù)組,則依照上文,空間約為2N,函數(shù)棧存儲(chǔ)求和后的數(shù)組消耗約為N或者N+1, 最后轉(zhuǎn)換數(shù)據(jù)類型消耗N,最終復(fù)雜度約為 4N;
備注
Python中字符串的
join
函數(shù)需要手動(dòng)遍歷,否則請(qǐng)使用map函數(shù);