ps做网站主页的效果图,瑞安营销网站建设,团员密码忘了也找不到管理员,led网站免费模板【问题描述】[简单] 【解答思路】
1. 双指针 从两个字符串最后开始处理 对齐字符串添加当前位 int c abcnt; cnt为进位超过长度的补“0” 要注意最后有可能需要处理溢出位 时间复杂度#xff1a;O(max(M,N)) 空间复杂度#xff1a;O(1) public String addStrings(String nu…【问题描述】[简单] 【解答思路】
1. 双指针 从两个字符串最后开始处理 对齐字符串添加当前位 int c abcnt; cnt为进位超过长度的补“0” 要注意最后有可能需要处理溢出位 时间复杂度O(max(M,N)) 空间复杂度O(1) public String addStrings(String num1, String num2) {int n1 num1.length()-1;int n2 num2.length()-1;int cnt 0;StringBuilder res new StringBuilder();while(n10 || n20){int a 0 ,b 0;if(n10){a 0 ;}else{a num1.charAt(n1)-0;}if(n20){b 0 ;}else{b num2.charAt(n2)-0;}int c abcnt;cnt c/10;c%10;res.append(c);n1--;n2--;}if(cnt 1){res.append(1);}return res.reverse().toString();}** 优化**
class Solution {public String addStrings(String num1, String num2) {StringBuilder res new StringBuilder();int i num1.length() - 1, j num2.length() - 1, carry 0;while(i 0 || j 0){int n1 i 0 ? num1.charAt(i) - 0 : 0;int n2 j 0 ? num2.charAt(j) - 0 : 0;int tmp n1 n2 carry;carry tmp / 10;res.append(tmp % 10);i--; j--;}if(carry 1) res.append(1);return res.reverse().toString();}
}
【总结】
1. 双指针 不用函数的要注意处理溢出位 补“0”
2.一开始用了List 转字符串不好转 应该采用StringBulider
3.StringBulider用法总结
1、append(String str)/append(Char c)字符串连接 2、toString()返回一个与构建起或缓冲器内容相同的字符串 3、setCharAt(int i, char c)将第 i 个代码单元设置为 c可以理解为替换 4、insert(int offset, String str)/insert(int offset, Char c)在指定位置之前插入字符(串) 5、delete(int startIndex,int endIndex)删除起始位置含到结尾位置不含之间的字符串 转载链接https://leetcode-cn.com/problems/add-strings/solution/add-strings-shuang-zhi-zhen-fa-by-jyd/