415. Add Strings 计算两个数字字符串的和
2017-07-06 18:15
225 查看
Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2.
Note:
1. The length of both num1 and num2 is < 5100.
2. Both num1 and num2 contains only digits 0-9.
3. Both num1 and num2 does not contain any leading zero.
4. You must not use any built-in BigInteger library or convert the inputs to integer directly.
Note:
1. The length of both num1 and num2 is < 5100.
2. Both num1 and num2 contains only digits 0-9.
3. Both num1 and num2 does not contain any leading zero.
4. 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) { int len1 = num1.size(); int len2 = num2.size(); if (len1 <= 0 && num2.size() <= 0) return ""; else if (len1 <= 0) return num2; else if (len2 <= 0) return num1; else { string result = ""; //记录结果,将从个位开始计算的结果依次添加到后边,因而最后需要将前后翻转 int c = 0;//每个位上的进位 int sum; int minlen = min(len1, len2); int i = len1 - 1; int j = len2 - 1; while (minlen > 0) { sum = c + (num1[i] - '0') + (num2[j] - '0');//本位上的和等于两个家数在本位上的数字与上一位的进位之和 c = sum / 10;//计算本位上的进位 result += sum % 10 + '0';//计算本位上除了进位之后的个位数,直接添加到结果的后面 i--; j--; minlen--; } // 当num1较长 while (i != -1) { sum = c + (num1[i] - '0'); c = sum / 10; result += sum % 10 + '0'; i--; } // 当num2较长 while (j != -1) { sum = c + (num2[j] - '0'); c = sum / 10; result += sum % 10 + '0'; j--; } // 处理最后的进位 if (i == -1 && j == -1 && c != 0) result += c + '0'; reverse(result.begin(), result.end()); return result; } } };
相关文章推荐
- 415. Add Strings (计算由两个字符串表示的数字相加之和)
- 高精度计算:最大公约数【两个数字字符串】
- [LeetCode]415. Add Strings(计算两个字符串表示的数字的和)
- 两个数字字符串相乘
- 计算两个字符串的距离(相似度)
- 通过JS计算两个数字值
- 默认字符编码是UTF8的linux服务器,java计算字符串长度(半角算一个,全角算两个)
- 两个文本框都输入数字后只要焦点一失去,在第三个文本框中就自动计算出前两个的和或者积
- C#计算两个字符串的相似度
- C语言学习序列之面试题目-计算两个字符串中出现的相同英文字符
- 编程之美:计算两个字符串的相似度---动态规划实现
- 用于计算两个字符串之间的Levenshtein距离
- 计算字符串的长度(一个汉字算两个字符)
- 计算两个字符串相似度的算法
- 计算一个字符串中的数字,字母,标点数
- 计算两个字符串相似度
- 两个日期字符串的js计算
- C#计算字符串长度(中文两个字符)
- 匹配一个字符串,它由0、1、2组成,并且中间没有两个相邻的数字是相同的(比如,匹配1232101210321020,而不匹配1100123)
- php 编一函数计算一个字符串中有多少个字母.汉字.数字?