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 }