【方法一:模擬豎式加法】
定義兩個指標 i 和 j 分別指向 num1 和 num2的末尾,即最低位,同時定義乙個變數 add維護當前是否有進製,然後從末尾到開頭逐位相加即可。數字位數不同時,我們統一在指標當前下標處於負數的時候返回 0,等價於對位數較短的數字進行了補零操作,這樣就可以除去兩個數字位數不同情況的處理,具體可以看下面的**。
reverse(ans.begin(), ans.end());//結果要翻轉一下
return ans;
}【方法二:字串轉數字,數字再轉字串】
思路是利用char和int之間ascll碼相差48,先將字串轉換成數字,用int型別求和之後再將數字轉成字串儲存
string addstrings(string num1, string num2) }
for (int i = 0; i < num2.length(); i++) }
count = a + b;//ab是字串轉成的數字
if (count == 0) res = 0 + 48;
else
while (!st.empty())
} return res;
}
我覺得思路沒有問題啊,但是有乙個測試用例通過不了,不知道是為什麼啊!花了好長時間,難道是範圍的問題?
LeetCode 415 字串相加
給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。利用字元流,將...
LeetCode 415 字串相加
給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。無 class...
LeetCode 415 字串相加
題目 給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。原始碼 ...