【每日一题】【链表&头插法&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