C/C++説明LeetCode 415.文字列の加算
6342 ワード
415.文字列加算
皆さん、こんにちは.ān jié)、CSDNの中で学習の点滴の過程を記録して、時間が経つにつれて、未来は期限があって、がんばれ~ブロガーは現在CSDNの中でブログを書くだけで、唯一のブログの更新の住所は:
本论原创はホホ官劼で、オリジナルを支持してください.一部のプラットフォームはずっと悪意を持ってブロガーの文章を盗んでいます!!
難易度214コレクション共有を英語の注目フィードバックに切り替えます
2つの文字列形式の非負の整数
注意: 内蔵BigIntegerライブラリを使用することはできません.入力した文字列を整数に変換することはできません.
問題解
大数を加算して、直接シミュレーションすればいいです.
皆さん、こんにちは.ān jié)、CSDNの中で学習の点滴の過程を記録して、時間が経つにつれて、未来は期限があって、がんばれ~ブロガーは現在CSDNの中でブログを書くだけで、唯一のブログの更新の住所は:
本论原创はホホ官劼で、オリジナルを支持してください.一部のプラットフォームはずっと悪意を持ってブロガーの文章を盗んでいます!!
難易度214コレクション共有を英語の注目フィードバックに切り替えます
2つの文字列形式の非負の整数
num1
およびnum2
が与えられ、それらの和が計算される.注意:
num1
およびnum2
の長いはいずれも5100未満である.num1
およびnum2
は、いずれも0-9
という数字のみを含む.num1
およびnum2
は、いずれもプリアンブルゼロを含まない.問題解
大数を加算して、直接シミュレーションすればいいです.
class Solution {
public:
string addStrings(string num1, string num2) {
string ans = "";
int len1 = num1.length();
int len2 = num2.length();
int i , j ,carry; // carry
carry = 0;
for(i = len1 -1, j = len2 -1 ; i >= 0 || j >= 0; i--,j--){
int n1 = i > -1 ? int(num1[i] - '0') : 0;;
int n2 = j > -1 ? int(num2[j] - '0') : 0;
int sum = carry + n1 + n2;
ans = char(sum%10 + '0') + ans;
carry = sum / 10;
}
if(i <= -1 && j <= -1 && carry != 0)
ans = char(carry + '0') + ans;
return ans;
}
};