首页 > 9.26-涂鸦Java笔试
头像
Wannay
发布于 2021-09-27 12:56
+ 关注

9.26-涂鸦Java笔试

    //返回一个字符串中的倒数第二小的数...
    public int secondHighest(String s) {
        //排除特殊情况....
        if (s == null || s.length() == 0) {
            return -1;
        }
        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        //先把数字筛选出来....并去重
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) <= '9' && s.charAt(i) >= '0') {
                set.add(s.charAt(i) - '0');
            }
        }
        //如果size<=1
        if (set.size() <= 1) {
            return -1;
        }
        Integer[] toArray = set.toArray(new Integer[0]);
        Arrays.sort(toArray);
        return toArray[toArray.length - 2];  //返回倒数第二个元素
    }

    //比较版本号,2021.09.01每日一题
    public int compareVersion(String version1, String version2) {
        String[] sp1 = version1.split("\\.");  //按照.分割
        String[] sp2 = version2.split("\\.");  //按照.分割
        List<Integer> list1 = new ArrayList<>();
        List<Integer> list2 = new ArrayList<>();
        //分割之后放到list中...
        Arrays.stream(sp1).forEach(e -> list1.add(Integer.parseInt(e)));  //全部解析成为int
        Arrays.stream(sp2).forEach(e -> list2.add(Integer.parseInt(e)));  //全部解析成为int

        for (int i = 0; ; ) {
            //如果前面的全部都匹配上了,但是最后另外一个比较长,只要其中一个不为0,就得return 1/-1
            if (i == list1.size() && i < list2.size()) {
                for (; i < list2.size(); i++) {
                    if (list2.get(i) != 0) {
                        return -1;
                    }
                }
                return 0;
            }
            if (i == list2.size() && i < list1.size()) {
                for (; i < list1.size(); i++) {
                    if (list1.get(i) != 0) {
                        return 1;
                    }
                }
                return 0;
            }
            //如果两者都到达了最后,并且全部都匹配上了,return 0
            if (i == list1.size() && i == list2.size()) {
                return 0;
            }
            //如果list1[i]>list2[i],那么return 1
            if (list1.get(i) > list2.get(i)) {
                return 1;
                //如果list1[i]<list2[i],那么return -1
            } else if (list1.get(i) < list2.get(i)) {
                return -1;
            } else {  //如果两者相等的话...需要继续向后进行搜索...
                i++;
            }
        }
    }

全部评论

(2) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐