1450. 在既定时间做作业的学生人数
题干
给你两个整数数组 startTime
(开始时间)和 endTime
(结束时间),并指定一个整数 queryTime
作为查询时间。
已知,第 i
名学生在 startTime[i]
时开始写作业并于 endTime[i]
时完成作业。
请返回在查询时间 queryTime
时正在做作业的学生人数。形式上,返回能够使 queryTime
处于区间 [startTime[i], endTime[i]]
(含)的学生人数
思路:
难点在切割获取想要的信息
public class Solution {
public static int busyStudent(int[] startTime, int[] endTime, int queryTime) {
int count = 0;
for(int i = 0; i<startTime.length;i++){
if(queryTime >= startTime[i] && queryTime <= endTime[i])
count++;
}
return count;
}
public static int[] pasrseArrays(String input,String key){
int startIndex = input.indexOf(key + " = [") + (key + " = [").length();
int endIndex = input.indexOf("]",startIndex);
String arrayString = input.substring(startIndex,endIndex);
return Arrays.stream(arrayString.split(","))
.mapToInt(Integer::parseInt)
.toArray();
}
public static int parseQueryTime(String input){
String queryKey = "queryTime = ";
int queryIndex = input.indexOf(queryKey) + queryKey.length();
return Integer.parseInt(input.substring(queryIndex).trim());
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
int[] startTime = pasrseArrays(input,"startTime");
int[] endTime = pasrseArrays(input,"endTime");
int queryTime = parseQueryTime(input);
int result = busyStudent(startTime,endTime,queryTime);
System.out.println(result);
scanner.close();
}
}