爱数科技0228后端开发笔试
笔试时间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); } }