博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-415-Add Strings]
阅读量:5830 次
发布时间:2019-06-18

本文共 1860 字,大约阅读时间需要 6 分钟。

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.

思路:

模拟手工加法过程,用carry表示进位。

第一个是自己写的,比较啰嗦。

第二个是参考的网上大神的,简洁。

string addStrings(string num1, string num2)     {         int n1 = num1.length()-1, n2 = num2.length()-1;         string ret="";         int digit = 0;         int carry = 0;         int sum = 0;         while (n1 >= 0 && n2 >= 0)         {             sum = carry + num1[n1--] + num2[n2--] - '0' - '0';             digit = sum %10;             carry = (sum >= 10) ? 1 : 0;             ret += (digit+'0');         }                 while (n1 >= 0)         {             sum = carry + num1[n1--] - '0';             digit = sum % 10;             carry = (sum >= 10) ? 1 : 0;             ret += (digit + '0');         }                          while (n2 >= 0)         {             sum = carry + num2[n2--] - '0';             digit = sum % 10;             carry = (sum >= 10) ? 1 : 0;             ret += (digit + '0');         }                         if (carry) ret += '1';         reverse(ret.begin(), ret.end());         return ret;              }
string addStrings(string num1, string num2) {    int i = num1.size() - 1;    int j = num2.size() - 1;    int carry = 0;    string res = "";    while(i>=0 || j>=0 || carry){        long sum = 0;        if(i >= 0){sum += (num1[i] - '0');i--;}        if(j >= 0){sum += (num2[j] - '0');j--;}        sum += carry;         carry = sum / 10;        sum = sum % 10;        res =  res + to_string(sum);    }    reverse(res.begin(), res.end());    return res;}

参考:

转载于:https://www.cnblogs.com/hellowooorld/p/7123938.html

你可能感兴趣的文章
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>
PyTips 0x02 - Python 中的函数式编程
查看>>
使用《Deep Image Prior》来做图像复原
查看>>
Linux基础命令---rmdir
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
FreeMarker-Built-ins for strings
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
我理想中的前端工作流
查看>>