博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
领扣(LeetCode)字符串相加 个人题解
阅读量:4993 次
发布时间:2019-06-12

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

给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

注意:

  1. num1 和num2 的长度都小于 5100.
  2. num1 和num2 都只包含数字 0-9.
  3. num1 和num2 都不包含任何前导零。
  4. 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。

这道题比较简单,有一种主流的思路是模拟逻辑电路相加的做法。实现对字符串补0,让两个字符串都达到同样长度,然后再设置一个进位标志位,逐次相加。

这里要注意相加到最后的进位问题,记得增加进位位。

其他的做法不再累述,特别是使用Java做这个题,有点不务正业的感觉,因为Java把库都内建得很好了,代码中还是用到了把ASCII码转为字符的内建方法。

代码可以更加精炼,不过既然是模拟题,还是按部就班做出来比较好。

代码如下:

1 class Solution { 2     public String addStrings(String num1, String num2) { 3         int cf = 0; 4         String ans = ""; 5         String zerostr = ""; 6         if (num1.length() < num2.length()) { 7             for (int i = 0; i < num2.length() - num1.length(); i++) 8                 zerostr += "0"; 9             num1 = zerostr + num1;10         } else {11             for (int i = 0; i < num1.length() - num2.length(); i++)12                 zerostr += "0";13             num2 = zerostr + num2;14         }15         System.out.println(num1 + " " + num2);16         for (int i = num1.length(); i >= 0; i--) {17             String tmpstr = "";18             int tmp1 = num1.charAt(i) - '0';19             int tmp2 = num2.charAt(i) - '0';20             if (tmp1 + tmp2 + cf >= 10) {21                 tmpstr = Integer.toString(tmp1 + tmp2 - 10 + cf);22                 cf = 1;23             } else {24                 tmpstr = Integer.toString(tmp1 + tmp2 + cf);25                 cf = 0;26             }27             ans = tmpstr + ans;28         }29         if (cf == 1)30             ans = "1" + ans;31 32         return ans;33     }34 }

 

转载于:https://www.cnblogs.com/axiangcoding/p/9978189.html

你可能感兴趣的文章
ArcGIS中的坐标系统定义与投影转换方法
查看>>
机械臂的碰撞检测资料
查看>>
[UnityShader基础]01.渲染队列
查看>>
字符串转整型C++
查看>>
随机生成红包算法
查看>>
Datatable get请求传参应用
查看>>
杭电1170
查看>>
3unit8
查看>>
kettle与各数据库建立链接的链接字符串
查看>>
【转】Apache Solr 访问权限控制
查看>>
LoadRunner压力测试实际运用的使用方法
查看>>
项目管理理论与实践(1)——企业项目管理介绍
查看>>
MySql学习20----数据库范式
查看>>
[Mark]The problems & solutions of vmware vsphere
查看>>
在centos7 上部署 vuepress
查看>>
struts2中的标签
查看>>
Beta版总结会议
查看>>
建造者模式(Builder Pattern)
查看>>
ajax&模板引擎
查看>>
浅析Java中的final关键字
查看>>