• 两个简单的面试题


      分享两个简单的面试题,好吧,求质数的那个面试题居然没做出来。。。。要好好打基础

    public class Study0812 {
    
        //获取一个字符串中的重复次数最多的字符
        public static char printMore(String str) {
            //小写字母最多也就是26个
            int[] arr = new int[26];
            char[] chars = str.toCharArray();
            //既然小写字母最多就是26个,那我获取到该字符的ascii码减去97可以直接当作数组的索引,这个索引肯定不会超过26
            for (int i = 0; i < chars.length; i++) {
                arr[chars[i] - 97]++;
            }
            //获取arr数组中最大的数的索引,该索引加97就是字符中重复最多的字符
            int maxIndex = 0;
            for (int i = 0; i < arr.length - 1; i++) {
                if (arr[maxIndex] < arr[i + 1]) {
                    maxIndex = i + 1;
                }
            }
            return (char) (maxIndex + 97);
        }
    
        //输入一个数,获取该数以下的所有质数,例如输入10,输出2,3,5,7
        //什么叫做质数呢,其实就是一个数只能被1和本身整除;
        // 在代码中,假设有一个数是n,我们只需要判断n是否可以整除  2到根号n  之间的所有数,如果都不能整除,该数就是质数
        //这里假设n>3
        public static List<Integer> printPrime(int num){
            List<Integer> result = new ArrayList<>();
            //由于num>3,则肯定有质数2,3,先放进去
            result.add(2);
            result.add(3);
            //找到num以下的所有数,每一个数都去判断是不是质数
            for (int i = 2; i < num; i++) {
                boolean flag = false;
                //判断n是否可以整除  2到根号n  之间的所有数
                //每一整数i只要有一次被其他数整除了,那么就可以断定该数不是质数,直接跳出循环,找下一个i
                for (int j = 2; j <= Math.sqrt(i); j++) {
                    if (i%j == 0){
                        flag = false;
                        break;
                    }
                    flag = true;
                }
                //如果是质数就放到集合中
                if (flag){
                    result.add(i);
                }
            }
            return result;
    
        }
    
        public static void main(String[] args) {
            //获取重复最多的那个字符
            char ch = printMore("aaabcdexxxxxxfg");
            System.out.println("重复最多的字符是:" + ch);
    
            //找到一个数以下的所有质数,例如输入10,输出2,3,5,7
            //假设输入的数大于3
            List<Integer> primeList = printPrime(20);
            System.out.println(primeList.toString());
        }
    }

  • 相关阅读:
    11C++11通用为本,专用为末_2
    10C++11通用为本,专用为末_1
    09C++11保证稳定性和兼容性
    21变量名的力量_2
    NOIP2018 游记
    CF767C 经典的树形DP
    CF1A Theatre Square
    洛谷P1720 月落乌啼算钱
    洛谷P3388 缩点
    NOIP2017D2T1 奶酪 洛谷P3958
  • 原文地址:https://www.cnblogs.com/wyq1995/p/13492552.html
Copyright © 2020-2023  润新知