• done amazon gs合同工 oa


    利口2

    1、第一次见到hackerrank要自己写driver的,然后就真的自己写,出错了:
    l1一支递归,到最后就没了。返回的l1就是个尾巴。所以要保持head的关系
    用一个head,然后append才行
    其实可以查
    2、要额外加函数addToTheLast之类的:https://www.geeksforgeeks.org/sum-of-two-linked-lists/
    https://java2blog.com/add-two-numbers-represented-by-linked-list-in-java/
    3、输入输出的要求:https://support.hackerrank.com/hc/en-us/articles/1500009518662-Sample-Problem-Statement

    自己写的辣鸡code:

    import java.io.*;
    import java.util.*;
    import java.text.*;
    import java.math.*;
    import java.util.regex.*;
    
    public class Solution {
        public static void main(String args[]) throws Exception {
            /* Enter your code here. Read input from STDIN. Print output to STDOUT */
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String numsString = br.readLine();
            String numsString1 = numsString.split(",")[0];
            String numsString2 = numsString.split(",")[1];
            String[] splited1 = numsString1.split("\s+");
            ListNode l1 = new ListNode(Integer.parseInt(splited1[0]));
            
            for (int i = splited1.length - 1; i >= 0; i--){
            ListNode node = new ListNode(Integer.parseInt(splited1[i]));  
            System.out.println("node = " + node.val);
            l1.next = node;
            l1 = l1.next;
      }
            System.out.println("l1.toString() = " + l1.toString());
            
            String[] splited2 = numsString2.split("\s+");
            ListNode l2 = new ListNode(Integer.parseInt(splited2[0]));
                    for (int i = splited2.length - 1; i >= 0; i--){
            ListNode node = new ListNode(Integer.parseInt(splited2[i]));
            System.out.println("node = " + node.val);
            l2.next = node;
      }
            System.out.println("l2.toString() = " + l2.toString());
            
            ListNode c1 = l1;
            ListNode c2 = l2;
            ListNode sentinel = new ListNode(0);
            ListNode d = sentinel;
            int sum = 0;
            while (c1 != null || c2 != null) {
                sum /= 10;
                if (c1 != null) {
                    sum += c1.val;
                    c1 = c1.next;
                }
                if (c2 != null) {
                    sum += c2.val;
                    c2 = c2.next;
                }
                d.next = new ListNode(sum % 10);
                d = d.next;
            }
            if (sum / 10 == 1)
                d.next = new ListNode(1);
                
            System.out.println(sentinel.next.toString());           
        }
        
       
    }
    
    class ListNode
    {
        int val;
        ListNode next;
        
        public ListNode(int x){
            val=x;
        }
      
        public String toString() {
        String result = val + " ";
        if (next != null) {
            result += next.toString();
        }
        return result;
    }
    }

    深井冰,明明是807,说是708。一个oa弄得这么吹毛求疵干什么。算了。

    看了一眼系统设计:

  • 相关阅读:
    Java中的BoneCP数据库连接池用法
    css 属性选择器笔记
    px,em,rem的区别
    谈谈newDate()的简单使用 JS
    user-select属性用法
    闭包解决的问题
    jQuery 中position()与offset()的区别
    attr() VS prop()
    .toArray()与jQuery.makeArray()的区别
    浏览器的缓存控制
  • 原文地址:https://www.cnblogs.com/immiao0319/p/15131017.html
Copyright © 2020-2023  润新知