1. 程式人生 > 其它 >【每日一題】【連結串列&頭插法&ASCII碼】【連結串列&迭代器】2022年1月28日-NC1 大數加法

【每日一題】【連結串列&頭插法&ASCII碼】【連結串列&迭代器】2022年1月28日-NC1 大數加法

描述
以字串的形式讀入兩個數字,編寫一個函式計算它們的和,以字串形式返回。

思路:原生連結串列&頭插法節點值

import java.util.*;


public class Solution {
    /**
     * 程式碼中的類名、方法名、引數名已經指定,請勿修改,直接返回方法規定的值即可
     * 計算兩個數之和
     * @param s string字串 表示第一個整數
     * @param t string字串 表示第二個整數
     * @return string字串
     */
    public String solve (String s, String t) {
        
//嘗試連結串列+頭插法 LinkedList<Integer> head = new LinkedList<>(); char[] arrS = s.toCharArray(); char[] arrT = t.toCharArray(); int lenS = arrS.length; int lenT = arrT.length; int leave = 0; while(lenS-- > 0 && lenT-- > 0) {
//char如何轉為真正的int-'0' int num = leave + Integer.valueOf(arrS[lenS] - '0') + Integer.valueOf(arrT[lenT] - '0'); head.addFirst(num % 10); leave = num / 10; } while(lenS-- > 0) { int num = leave + Integer.valueOf(arrS[lenS] - '0'); head.addFirst(num
% 10); leave = num / 10; } while(lenT-- > 0) { int num = leave + Integer.valueOf(arrT[lenT] - '0'); head.addFirst(num % 10); leave = num / 10; } if (leave > 0) { head.addFirst(leave); } StringBuilder sb = new StringBuilder(); Iterator iter = head.iterator(); while(iter.hasNext()) { sb.append(iter.next()); } return new String(sb); } }

本文來自部落格園,作者:哥們要飛,轉載請註明原文連結:https://www.cnblogs.com/liujinhui/p/15852078.html