Easy
You are given a string s
representing an attendance record for a student where each character signifies whether the student was absent, late, or present on that day. The record only contains the following three characters:
'A'
: Absent.'L'
: Late.'P'
: Present.The student is eligible for an attendance award if they meet both of the following criteria:
'A'
) for strictly fewer than 2 days total.'L'
) for 3 or more consecutive days.Return true
if the student is eligible for an attendance award, or false
otherwise.
Example 1:
Input: s = “PPALLP”
Output: true
Explanation: The student has fewer than 2 absences and was never late 3 or more consecutive days.
Example 2:
Input: s = “PPALLL”
Output: false
Explanation: The student was late 3 consecutive days in the last 3 days, so is not eligible for the award.
Constraints:
1 <= s.length <= 1000
s[i]
is either 'A'
, 'L'
, or 'P'
.public class Solution {
public boolean checkRecord(String s) {
int aCount = 0;
int i = 0;
while (i < s.length()) {
if (s.charAt(i) == 'A') {
aCount++;
if (aCount > 1) {
return false;
}
} else if (s.charAt(i) == 'L') {
int continuousLCount = 0;
while (i < s.length() && s.charAt(i) == 'L') {
i++;
continuousLCount++;
if (continuousLCount > 2) {
return false;
}
}
i--;
}
i++;
}
return true;
}
}