笔试时间2h; 有20道逻辑题 + 10道知识题 + 1道问答题 + 2道编程题
问答题 现在有64名跑步运动员与8条跑道,请问至少要几轮比赛才能找出跑的最快的4名运动员
10/11轮;
编程题
1.输入数组 如 3,2,3,-3,1,-2
求 和为0的子数组个数
这题类似的是 求和为k的连续子数组个数leetcode-560
这题难点在于他可以是不连续的子数组
2.输入一个字符串 求最大连续子字符串长度
如 sdlkjalksdkabcdefgkdkqweo 最长为 abcdefg 输出 7
直接遍历就行
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
int len = s.length();
int count = 0;
for (int left = 0; left < len; left++) {
//初始化右指针
int right = 0;
//当左指针为 ‘a’ 时,开始移动右指针
//当右指针指向的字符串不连续时 退出循环
while (s.charAt(left) == 'a' && left + right < len && s.charAt(left + right) == 'a' + right) {
right ++;
}
if (right > count) count = right;
}
System.out.println(count);
}
}