今晚的模拟笔试编程题(JAVA卷)
第一道题:求重复数字
import java.util.Scanner; public class Main { public static Boolean process(String str, int n) { if (n == 1) { return true; } int p1 = 0; int p2 = n / 2 + 1; while (p2 < n + 1) { if (str.charAt(p1++) != str.charAt(p2++)) { return false; } } return true; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int n = str.length() -1 ; while (--n > 0) { if (n % 2 != 0) { if (process(str, n) == true) { System.out.println(n + 1); break; } } } } }
第二道题 求最多的回文串数目
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); HashMap<Character, Integer> map = new HashMap<>(); for (int i = 0; i < str.length(); i++) { if (map.containsKey(str.charAt(i))) { map.put(str.charAt(i), map.get(str.charAt(i)) + 1); } else { map.put(str.charAt(i), 1); } } int count = 0; Boolean hasEven = false; for (Map.Entry<Character, Integer> entry : map.entrySet()) { if (entry.getValue() % 2 != 0) { count++; } else { hasEven = true; } } if (hasEven == true && count == 1) { System.out.println(1); } else { System.out.println(count); } } }
第三道一直想打表,无奈没时间找出规律,只过了20%,求各路大神指导。
#笔试题目##Java#