zoukankan      html  css  js  c++  java
  • HW2018校招研发笔试编程题

    1. 数字处理

    题目描述:给出一个不多于5位的整数,进行反序处理,要求

    (1)求出它是几位数

    (2)分别输出每一个数字(空格隔开)

    (3)按逆序输出各位数字(仅数字间以空格间隔,负号与数字之间不需要间隔)

    输入描述:位数不大于5的整数

    输出描述:1.整数位数 2.空格间隔输出结果 3.逆序整数

    思路描述:直接进行正负数判断,分别进行处理

    【code】

    import java.util.Scanner;
    
    /**
     * Created by Administrator on 2018/3/21.
     */
    public class NumberProcess {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            while (in.hasNext()) {
                //输入
                int n = in.nextInt();
    
                //转换
                String s = String.valueOf(n);
                char[] array = s.toCharArray();
    
                if (n >= 0) {
                    //输出长度
                    System.out.println(array.length);
    
                    //分别输出每一个数字(空格隔开)
                    for (int i = 0; i < array.length; i++) {
                        System.out.print(array[i] + " ");
                    }
    
                    System.out.println();
    
                    //按逆序输出各位数字
                    for (int i = array.length - 1; i >= 0; i--) {
                        System.out.print(array[i] + " ");
                    }
                } else {
                    //输出长度
                    System.out.println(array.length-1);
    
                    //分别输出每一个数字(空格隔开)
                    for (int i = 0; i < array.length; i++) {
                        System.out.print(array[i] + " ");
                    }
    
                    System.out.println();
    
                    //按逆序输出各位数字,负号与数字之间不需要间隔
                    System.out.print(array[0]);
                    for (int i = array.length - 1; i > 0; i--) {
                        System.out.print(array[i]+" ");
                    }
                }
            }
            in.close();
        }
    }

    【Result】

    12345
    5
    1 2 3 4 5 
    5 4 3 2 1 
    -12345
    5
    - 1 2 3 4 5 
    -5 4 3 2 1 
    

      

    2. IP地址交集判断

    题目描述:输入四个IP端,前两个为第一个IP段的起始和终止地址,后两个是第二个IP段的起始和终止地址,判断这两个IP段是否存在交集

    输入描述:输入4个IP

    输出描述:如果存在交集,输出 Overlap IP ; 如果不存在交集,输出 No Overlap IP 

    思路描述:开始看题目感觉不是很理解,看到IP地址觉得很复杂。其实真正了解了题意之后发现原来是想多了。将IP地址化成区间,判断两个区间是否存在交集就行了,高中数学。

     【code】

    import java.util.Scanner;
    
    /**
     * Created by Administrator on 2018/3/12.
     */
    public class isMixed {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (sc.hasNext()) {
                //输入 ['1.1.1.1','255.255.255.255','2.2.2.2','3.3.3.3']
                String[] array = new String[4];
                array[0] = sc.nextLine();
                array[1] = sc.nextLine();
                array[2] = sc.nextLine();
                array[3] = sc.nextLine();
    
                Long[] newArray = new Long[array.length]; //使用Long,Int会溢出
    
                //函数
                //分割,去掉.,组合
                for (int i = 0; i < array.length; i++) {
                    newArray[i] =Long.parseLong(joinChar(array[i]));
                }
    
                //判断
                if(newArray[0]<=newArray[1] && newArray[2]<=newArray[3]){
                    if(newArray[3]<newArray[0] || newArray[2]>newArray[1]){
                        System.out.println("No Overlap IP");
                    }else{
                        System.out.println("Overlap IP");
                    }
                }
    
            }
            sc.close();
        }
    
        public static String joinChar(String arr) {
            String newArr = "";
            String[] s = arr.split("\.");
            for (int i = 0; i < s.length; i++) {
                newArr += s[i];
            }
            return newArr;
        }
    
    }
    

      

    【result】

    1.1.1.1
    255.255.255.255
    2.2.2.2
    3.3.3.3
    Overlap IP
    

      

    3. 数字排序

    题目描述: 给定字符串内有很多正整数,要求对这些正整数进行排序,然后返回排序后指定位置的正整数,排序要求:按照每一个正整数的后三位数字组成的整数进行从小到大排序

    (1)如果不足三位,则按照实际位数组成的整数进行比较

    (2)如果相等,则按照输入字符中的原始顺序排序

    说明:(1)字符串以‘’结尾,仅包含数字、空格(2)字符串内正整数之间以单个空格分隔,字符串首尾没有空格(3)正整数格式为十进制,大小1~1000000,正整数的数字非零开始

    输入描述:第一行为一个整数字符串,里面包含若干个整数,以空格分割,第二行为一个整数,即指定的位置

    输出描述:输出指定位置的整数

    思路:将每个数字按数字的后三位数的大小比较进行排序,不足三位的保持原数字比较。然后输出。

    【code】

    import java.util.*;
    
    
    public class Sort {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (sc.hasNext()) {
    
                //输入  '1223 22 3232 2016', '3'
                String str = sc.nextLine();
                int position = sc.nextInt();
    
    
                //按照空格分割
                String[] strArr = str.split(" ");
    
                //添加元素进集合
                List<Integer> list = new ArrayList<>();
                for (int i = 0; i < strArr.length; i++) {
                    list.add(Integer.valueOf(strArr[i]));
                }
    
                //使用Collections的sort方法,并且重写compare方法
                Collections.sort(list, new Comparator<Integer>() {
                    public int compare(Integer o1, Integer o2) {
                        int a1;
                        int a2;
    
                        if (o1 > 1000) {
                            a1 = o1 % 1000;
                        } else {
                            a1 = o1;
                        }
                        if (o2 > 1000) {
                            a2 = o2 % 1000;
                        } else {
                            a2 = o2;
                        }
    
                        return a1 - a2;
                    }
                });
    
                System.out.println(list.get(position - 1));
    
            }
            sc.close();
        }
    
    }
    

      

    【result】

    1223 22 3232 2016
    3
    1223
    

     

    -------------------------------------------------------

    参考链接: https://www.cnblogs.com/guorange/p/7519222.html  (JS版本的解答)

  • 相关阅读:
    [转]深度理解依赖注入(Dependence Injection)
    [转]控制反转(IOC)和依赖注入(DI)
    [转]依赖注入的概念
    [转]struct实例字段的内存布局(Layout)和大小(Size)
    异步编程模式
    HTTP协议返回代码含义
    [转]StructLayout特性
    Stack的三种含义
    FineUI登入的例子中遇到的一些问题
    编程以外积累: 如何给项目生成类似VS2008的说明文档
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/8617913.html
Copyright © 2011-2022 走看看