【LeetCode笔记】415. 字符串相加(Java、字符串)

题目描述

  • 不能直接把字符串转换成整数(会溢出)
  • 面试被问过,今天刷面经又刷到。。那就索性水一篇文吧!
  • 更新:原题就是 leetcode 415
    在这里插入图片描述

思路 & 代码

  • 只要理好字符串s、字符串t、答案字符串的对应位关系就好啦!
  • 注意 carry 位的考虑:其中一个字符串已经结束时,也还需要考虑。
    加法结束后,还要考虑最后一次
  • 注意进行字符之间的加法的时候不要算乱了= =
  • 时间复杂度 O(max(m, n)),取两字符串的最大长度
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可* 计算两个数之和* @param s string字符串 表示第一个整数* @param t string字符串 表示第二个整数* @return string字符串*/public String solve (String s, String t) {int sL = s.length();int tL = t.length();int maxL = Math.max(sL, tL);// 从后往前,从小到大char[] ans = new char[maxL];int carry = 0;// 时间复杂度 O(max(m, n))for(int i = sL - 1, j = tL - 1; maxL > 0; i--, j--, maxL--){int nowSum = 0;// 一方先结束的情况if(i < 0){nowSum = t.charAt(j) - '0' + carry;}// 同上else if(j < 0){nowSum = s.charAt(i) - '0' + carry;}// 都没结束的情况(注意,这三种情况都要考虑 carry 位)else{nowSum = s.charAt(i) + t.charAt(j) - '0' - '0' + carry;}// 进位处理carry = nowSum / 10;nowSum %= 10;ans[maxL - 1] = (char)(nowSum + '0');}String ansS = new String(ans);// 最后一次进位处理if(carry == 1){ansS = '1' + ansS;}return ansS;// write code here}
}

更新版

  • 刷到评论区大佬的做法,很nice
  • while 循环写得很巧妙。
class Solution {public String addStrings(String num1, String num2) {StringBuilder sb = new StringBuilder();int carry = 0;int i = num1.length() - 1, j = num2.length() - 1;while(i >= 0 || j >= 0 || carry != 0) {if(i >= 0) {carry += num1.charAt(i--) - '0';}if(j >= 0) {carry += num2.charAt(j--) - '0';}sb.append(carry % 10);carry /= 10;}return sb.reverse().toString();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html表白earth,表白很感动的英语句子

表白很感动的英语句子13、在这快乐分享的时刻&#xff0c;思念好友的时刻&#xff0c;美梦成真的时刻&#xff0c;祝你—新年快乐&#xff0c;佳节如意!Wish you a happy new year and a good fortune in the coming year when we will share our happiness, think of our good…

opcua 入门简介 java_大二的学生自学Java有出路吗?

这个是技术&#xff0c;学好了必须是有出路的&#xff0c;当然你喜不喜欢还得看后面的学习情况&#xff0c;三天热火气的情况大有人在&#xff0c;更有甚者就是&#xff0c;系统培训完&#xff0c;上了半年的班了&#xff0c;后转行到别的也有&#xff0c;所以兴趣是自己的最大…

pandas离线安装

文章目录 方法一方法二 pandas离线安装 方法一 先在一个能上网的机器上&#xff0c;使用pip安装好pandas及依赖库 将装好的包打包&#xff0c;拷贝到不能上网的目标机上 cd /usr/lib/python3.10/site-packages tar cf pandas.tgz numpy* openpyxl* pandas* psutil* pygments*…

【LeetCode笔记】232. 用栈实现队列(Java、栈、队列)

题目描述 经典题了&#xff0c;貌似现在面试也有点喜欢问&#xff0c;今天补补题&#xff01;要实现均摊时间复杂度O(1)噢 思路 & 代码 用两个栈来实现&#xff1a;输出栈 & 输入栈输出栈 out&#xff1a;负责 pop、peek输入栈 in&#xff1a;负责 push关键点&…

如何安全使用计算机,如何安全的使用计算机

如何安全的使用计算机导语&#xff1a;关于电脑的使用&#xff0c;如何正确的安全的使用好电脑&#xff0c;其实很多人都会有这个意识。以下是小编精心整理的有关电脑安全的知识&#xff0c;希望对大家有所帮助。一是要注意环境。环境温度在15℃&#xff5e;35℃为宜&#xff0…

调节e18-d80nk的测量距离_地坪研磨机磨盘平整度的调节方法及好处

地坪研磨机磨盘平整度的调节方法及好处名词解释调节磨盘平整度主要是指将四个磨盘调到静止或运转时磨盘趋向处于同一个平面。 调节方法 1、采用一把高度卡尺或任意一把尺条测量准确磨盘面到箱体底部边沿距离2、采用10MM内六角扳手、调节M12的不锈钢内六螺丝&#xff08;如图1&…

【LeetCode笔记】225. 用队列实现栈(Java、队列、栈)

题目描述 感觉栈实现队列更简单&#xff0c;不过这个也还好写法有点像 JVM GC 里的复制算法 思路 & 代码 两个队列实现栈&#xff1a;from、tofrom&#xff1a;实际上的栈&#xff0c;存储元素就是按照栈的顺序来&#xff0c;负责pop、topto&#xff1a;辅助队列&#…

微型计算机最怕的是什么,为什么以前学生上“微机课”都要穿鞋套?老师:怕电脑中病毒...

原标题&#xff1a;为什么以前学生上“微机课”都要穿鞋套&#xff1f;老师&#xff1a;怕电脑中病毒前不久&#xff0c;知乎上一则问答短短一周便收获了近400万浏览量。“为什么小时候去计算机教室要穿鞋套&#xff1f;”看着网友们的回复&#xff0c;小酷想起了小学时期&…

iphone屏蔽系统更新_手贱更新了 iphone系统,想退回到原来的版本,这个方法简单易用...

应该有很多人都很烦iphone的系统更新&#xff0c;开着wifi一夜睡醒&#xff0c;就欢迎你来到最新系统&#xff0c;新版本出来之后&#xff0c;各种媒体消息铺天盖地而来&#xff0c;类似于呼吁大家赶快更新享用新功能&#xff0c;殊不知系统更新有两种&#xff0c;都不适合马上…

【LeetCode笔记】438. 找到字符串中所有字母异位词(Java、字符串、滑动窗口)

题目描述 因为自己写的复杂度已经到了 O(n)&#xff0c;就没有再参考题解的优化了更新&#xff1a;滑动窗口方法 思路 & 代码 用一个 int[ ] count 来存储当前判断子串的各字母出现次数getCount()&#xff1a;对当前子串&#xff0c;求 count&#xff0c;时间复杂度 O(…

西南大学计算机与信息科学学院陈武,学院副院长——陈武 - 计算机与信息科学学院 - Powered by 西南大学...

1998年7月&#xff0c;毕业于原西南师范大学计算机系&#xff0c;获工学学士&#xff1b;2004年7月&#xff0c;毕业于原西南师范大学计算机与信息科学学院&#xff0c;获工学硕士&#xff1b;2009年1月&#xff0c;毕业于贵州大学计算机学院&#xff0c;获工学博士。1998年7月…

电脑入门完全自学手册_电气自动化自学宝典——看过人人都是工程师

原标题&#xff1a;电气自动化自学宝典——看过人人都是工程师怎样快速成为一名电气自动化工程师呢&#xff1f; 对于一些对电气技术一无所知或略有一点基础的人来说&#xff0c;要想成为一名电气自动化工程师或达到相同的技术程度&#xff0c;有什么速成的方法吗&#xff1f;如…

【LeetCode笔记】213. 打家劫舍II(Java、动态规划)

文章目录题目描述思路 & 代码更新版题目描述 在 I 的基础上&#xff0c;分成两部分&#xff0c;再取 Max 就行 思路 & 代码 由题意可知&#xff1a;一种路线中&#xff0c;不能同时出现第一家和最后一家。那么好办了&#xff0c;直接分成两部分分别取&#xff1a;不…

天津科技大学计算机合资办学,天津科技大学计算机科学与信息工程学院介绍

计算机科学与信息工程学院成立于2003年&#xff0c;以本科教育为主&#xff0c;稳步发展研究生教育的二级教学单位。从2000年计算机系只具有一个计算机科学技术的本科专业发展到目前拥有计算机科学技术、网络工程、软件工程三个本科专业和一个计算机应用技术硕士学位授权点&…

jflash view log_塑胶产品上的“LOG”是怎么来的?

“LOG”就是我们生产出来的产品的品牌.可以是单一的字组成&#xff1b;可以是图案组成&#xff1b;也可以由字与图案一起组成。一种是我们用模具生产出来的,通过模具上加工的字体生产出来的“LOG”,从而表现在产品上。而用模具直接生产出来的“LOG”,模具上有把做“LOG”字体做…

【LeetCode笔记】337. 打家劫舍III(Java、树型动态规划)

文章目录题目描述思路 & 代码更新版题目描述 这年头当个小偷&#xff0c;都得会 dp 和二叉树了和前面的 I & II 有点不同&#xff0c;这次直接换了数据结构&#xff0c;写树来了。&#xff08;之后不会是图吧&#xff09;很厉害&#xff0c;第一次接触到树型的dp&…

西北工业大学计算机毕业论文,西北工业大学硕士论文开题报告应注意的事项

更多 / 育龙网核心提示:西北工业大学硕士论文开题报告应注意的事项:根据《研究生手册》的规定,研究生的论文选题报告最迟应于入学后第三学期结束前完成. 西北工业大学硕士论文开题报告应注意的事项一、开题报告根据《研究生手册》的规定,研究生的论文选题报告最迟应于入学后…

andriod studio 查看项目依赖_如何实施CRM项目管理

CRM 系统实施不当&#xff0c;不仅造成经济上的损失&#xff0c;而且会给企业的经营造成严重的影响&#xff0c;甚至导致崩溃。作为典型的高风险项目&#xff0c;CRM 系统实施必须进行严格的项目管理。而项目管理的内容非常丰富。下面简单描述CRM 项目管理中几个重要的方面。CR…

【LeetCode笔记】208. 实现Trie(前缀树)(Java、前缀树)

文章目录题目描述思路 & 代码更新版题目描述 属于那种&#xff0c;敲过一遍就不会忘了的那种题&#xff0c;就是学一个新的数据结构 二十六叉树&#xff01; 思路 & 代码 isEnd 非常重要噢&#xff0c;只有正式 insert 了的单词才能被 search 到。在 Trie 中实现内…

计算机的储存容量1kb等于多少byte,1M等于多少字节?

1M等于多少字节?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;1M等于多少字节?不是1M等于多少字节&#xff0c;是1MB等于多少字节。字节(Byte /bait/ n. [C])是计算机信息技术用于计量存…