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++; } } }
#涂鸦智能##笔经##java工程师#