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);
}
}
} 选择题一塌糊涂~人品全攒到编程题来了 