551. Student Attendance Record I
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:
- The student was absent (
'A'
) for strictly fewer than 2 days total. - The student was never late (
'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.
1 class Solution { 2 public boolean checkRecord(String s) { 3 boolean hasAppeared = false; 4 int lateCount = 0; 5 for (int i = 0; i < s.length(); i++) { 6 if (s.charAt(i) == 'A') { 7 if (hasAppeared) { 8 return false; 9 } else { 10 hasAppeared = true; 11 } 12 } 13 14 if (s.charAt(i) == 'L') { 15 if (i > 0 && s.charAt(i - 1) != 'L') { 16 lateCount = 1; 17 } else { 18 lateCount++; 19 } 20 21 if (lateCount >= 3) { 22 return false; 23 } 24 } 25 } 26 return true; 27 } 28 }