• 两个超长字符串相加


    思路:将他们转成int数组,然后按位相加,空间复杂度有点高,但时间复杂度为Max(O(M,N))

    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            while (scanner.hasNext()) {
                String one = scanner.next();
                String two = scanner.next();
               addBigDight(one,two);
            }
        }
    
        private static void addBigDight(String one,String two){
            int oneLen = one.length();
            int twoLen = two.length();
            int resultLen = (oneLen > twoLen ? oneLen : twoLen ) + 1;
            int[] result = new int[resultLen];
            int oneIndex = oneLen - 1;
            int twoIndex = twoLen - 1;
            int index = 0;
            char[] oneChars = one.toCharArray();
            char[] twoChars = two.toCharArray();
    
            int[] oneArr = new int[oneLen];
            int[] twoArr = new int[twoLen];
    
            for (int i = 0; i < oneArr.length; i++) {
                oneArr[i] = oneChars[i] - '0';
            }
            for (int i = 0; i < twoChars.length; i++) {
                twoArr[i] = twoChars[i] - '0';
            }
            while (oneIndex >= 0 && twoIndex >= 0){
                result[index] += oneArr[oneIndex] + twoArr[twoIndex];
                if(result[index] > 9){
                    result[index] -= 10;
                    result[index + 1] = 1;
                }
                index++;
                oneIndex--;
                twoIndex--;
            }
            while (oneIndex >= 0){
                result[index] += oneArr[oneIndex];
                index++;
                oneIndex--;
            }
            while (twoIndex >= 0){
                result[index] += twoArr[twoIndex];
                index++;
                twoIndex--;
            }
            for (int i = index-1; i >= 0 ; i--) {
                System.out.print(result[i]);
            }
             System.out.println();
        }
    
    }
  • 相关阅读:
    [C#]MagicLibrary.dll控件的使用(一)(下拉菜单)
    [SQL server]查询用户表及表结构
    [ASP.net]ASP.net的RUL重写
    [C#]简单XP菜单的实现(一)
    [Javascript]IFRAME运用(1)
    [ASP.net]未解的疑惑!
    [乱七八糟]Google搜索使用详细
    [Javascript]IFRAME运用(2)
    [随文杂记]残局
    [CSS]RevealTrans 滤镜
  • 原文地址:https://www.cnblogs.com/dongma/p/13258300.html
Copyright © 2020-2023  润新知