题目来源【Leetcode】
You are given a string representing an attendance record for a student. The record only contains the following three characters:
Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
The length of both num1 and num2 is < 5100.
Both num1 and num2 contains only digits 0-9.
Both num1 and num2 does not contain any leading zero.
You must not use any built-in BigInteger library or convert the inputs to integer directly.
这道题就是求两个数的和,只不过是以字符串的形式进行,代码如下:
class Solution {
public:
string addStrings(string num1, string num2) {
string s = "";
int temp = 0;
int l1 = num1.size();
int l2 = num2.size();
if(l1 < l2){
for(int i = 0; i < l2-l1; i++)
num1 = "0" + num1;
}
else {
for(int i = 0; i < l1-l2; i++)
num2 = "0" + num2;
}
for(int i = num1.length()-1; i >= 0; i--){
int t = num1[i]+num2[i]+temp-48*2;
if(t > 9) {
temp = 1;
t = t-10;
}
else temp = 0;
s = char(t+48) + s;
}
if(temp == 1) s = "1" + s;
return s;
}
};
字符串形式加法
本文介绍了一个LeetCode上的题目,该题目要求实现两个大数的加法运算,输入为两个非负整数的字符串形式,输出也为字符串形式。文章提供了一个C++解决方案,通过将较短的字符串前面补零来统一长度,然后从最低位开始逐位相加。
793

被折叠的 条评论
为什么被折叠?



