当前位置:网站首页>LeetCode 415:字符串相加
LeetCode 415:字符串相加
2022-08-01 07:03:00 【斯沃福德】
题目:
思路:
和数字相加一样的过程,双指针从后指向前遍历;
两数和大于10则记录在carry中并向前传递,即每次temp要加上carry的值;
追加到结果时,每次只添加个数,所以是 temp%10;
若 i和j 都遍历完跳出while,carray依然为1,即还需要再添加一个1;
最后要将结果reverse()逆序;
注意:
使用charAt(i) -‘0’ 将 char类型转变为int 类型,但是只能是减, 不能是 + ’0 ‘ !
class Solution {
public String addStrings(String num1, String num2) {
// 双指针 i j 指向字符串最后一位;
// i j 指向的加起来大于10 ,则进位 carry
// 从末尾开始加,则最后需要逆序
// 双指针
StringBuilder r=new StringBuilder("");
int i=num1.length()-1;
int j=num2.length()-1;
int carry=0; // 进位
while(i>=0 || j>=0){
int n1= i>=0 ? num1.charAt(i)-'0': 0; // char减 '0' 可以得到int的结果!
int n2= j>=0 ? num2.charAt(j)-'0': 0;
int temp=n1+n2+carry;
carry=temp/10; // carry为0 或 1
r.append(temp%10);
i--;
j--;
}
if(carry==1){
r.append("1");
}
return r.reverse().toString();
}
}
边栏推荐
猜你喜欢
随机推荐
我三本学历,五面阿里,被面试官“供”着出来了,拿了33*15的Offer
LeetCode 0149. Maximum number of points on a line
轻量级的VsCode为何越用越大?为什么吃了我C盘10G?如何无痛清理VsCode缓存?手把手教你为C盘瘦身
mysql中添加字段的相关问题
仿牛客网讨论社区项目—项目总结及项目常见面试题
R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:gtExtras包的pad_fn函数与gt::fmt函数一起用于填充包含数值的特定列、对数据列的数值进行十进制对齐(从小数点对齐)
The BP neural network based on MATLAB voice characteristic signal classification
Datagrip error "The specified database userpassword combination is rejected..."Solutions
Practical training Navicat Chinese and English mode switching
【南瓜书ML】(task4)神经网络中的数学推导(更新ing)
【FiddlerScript】利用FiddlerScript抓包保利威下载
weight distribution
The Bean's life cycle
Dialogue with the father of MySQL: One excellent programmer is worth 5 ordinary programmers
如何使用Photoshop合成星轨照片,夜空星轨照片后期处理方法
小程序通过云函数操作数据库【使用get取数据库】
图像基本操作的其他内容
数据机构----线性表之单向链表
权重等比分配
2022.7.26 Mock Competition









