问题如下:
在一周的7天内,如果学生连续两天以上未进行核酸PCR检测,或者如果在7天内检测次数少于或等于3次,他/她将得到相应的注意。“Y”表示该测试完成,“N”表示测试尚未完成。我们使用长度为7的字符串说明学生在某一周内参与核酸PCR检测的情况。使用系统时,用户需要输入学生ID和参与状态(7位字符串)。当输入满足上述要求时系统将输出:“满足”,学生ID必须为八位整数且首位不为0,且参与状态不能出现其他字母,否则输出:“不符合要求”
import java.util.Scanner;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int id = input.nextInt();
String s = input.next();
boolean a = (id>=10000000 && id<=99999999);
boolean b = (id<10000000 || id>99999999);
Pattern pattern = Pattern.compile("^[YN]{7}$");
boolean matches = pattern.matcher(s).matches();
if (!matches || b){
System.out.print("Not Valid");
}
String[] split = s.split("");
int sum=0;
boolean flag = false;
for (int i = 0; i<split.length-1; i++){
if (split[i].equals("Y")){
sum++;
if (split[i].equals(split[i+1])){
flag=true;
}
}
}
if (a && sum>=3 && flag){
System.out.print("Good, keep it up!");
}
if (a && (sum<3 || !flag)){
System.out.print("Has not participated in Nucleic Acid PCR tests as required!");
}
}
}
我不知道有什么地方没考虑到,提交到oj上只有50的成功率,各位帮忙看看那里有问题