360笔试
1. 寻找子串(只需要考虑单个字符,题目有诈😒):
mport java.util.HashMap; import java.util.Map; import java.util.Scanner; public class 寻找子串 { public static void main( String[] args ) { helper(); } private static void helper() { Scanner sc = new Scanner(System.in); String s = sc.next(); int len = s.length(); int res = 0; Map<String, Integer> map = new HashMap<>(); for(int i=0;i<len;i++) { String cur = s.charAt(i)+""; if(!map.containsKey(cur)) { map.put(cur, 1); }else { map.put(cur, map.get(cur) + 1); } if(map.get(cur) > res) { res ++; } } System.out.println(res); } }2. 散步:
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class 散步 { public static void main( String[] args ) { helper(); } private static void helper() { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[] d = new int[m]; for(int i=0;i<m;i++) { d[i] = sc.nextInt(); } Map<Integer, Boolean> map = new HashMap<>(); for(int i=1;i<=n;i++) { digui(0, i, d, map, n); } System.out.println(map.size()); } private static void digui( int i , int s, int[] d , Map<Integer, Boolean> map, int n ) { if(i == d.length) { map.put(s, true); return; } if(s + d[i] <= n) { digui(i + 1, s + d[i], d, map, n); } if(s - d[i] >= 1) { digui(i + 1, s - d[i], d, map, n); } } }选择题一塌糊涂~人品全攒到编程题来了