• 415. 字符串相加-字符串-简单


    问题描述

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

    注意:

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/add-strings

    解答

    class Solution {
        public void jinwei(StringBuilder s1, int offset, int num){
            if(offset < s1.length()){
                int temp = (int)s1.charAt(offset)-'0'+num;
                if(temp>=10){
                    s1.setCharAt(offset,(char)(temp%10+48));
                    jinwei(s1, offset+1, (int)(temp/10));
                }
                else s1.setCharAt(offset, (char)(temp+48));
            }else s1.append(num);
        }
        public String addStrings(String num1, String num2) {
            int len_num1 = num1.length();
            int len_num2 = num2.length();
            //保证num1比num2长
            if(len_num1 < len_num2){
                String result = addStrings(num2, num1);
                return result;
            }
            StringBuilder s1 = new StringBuilder(num1);
            StringBuilder s2 = new StringBuilder(num2);
            s1.reverse();
            s2.reverse();
            //结果保存到长的String里面,也就是num1
            for(int i=0;i<len_num2;i++){
                int temp = (int)s1.charAt(i)-'0'+(int)s2.charAt(i)-'0';
                if(temp>=10){
                    s1.setCharAt(i,(char)(temp%10+48));
                    jinwei(s1, i+1, (int)(temp/10));
                }
                else s1.setCharAt(i,(char)(temp+48));
            }
            return s1.reverse().toString();
        }
    }
  • 相关阅读:
    jvm内存分部
    vue 浏览器滚动行为
    vue中vueRouter使用
    vue脚手架的安装和使用
    vue 在路由中复用组件
    单例模式
    ser2net使用
    怎样使用万用表来测试板子上的TX和RX引脚
    STM32W芯片的JTAG口用于GPIO
    openwrt构建过程探索
  • 原文地址:https://www.cnblogs.com/xxxxxiaochuan/p/13340387.html
Copyright © 2020-2023  润新知