0551. Student Attendance Record I

https://leetcode.com/problems/student-attendance-record-i

Description

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.

Constraints:

  • 1 <= s.length <= 1000

  • s[i] is either 'A', 'L', or 'P'.

ac

class Solution {
    public boolean checkRecord(String s) {
        int a = 0, l  = 0;
        for (char c : s.toCharArray()) {
            if (c == 'A') {
                a++;
                l = 0;
            }
            else if (c == 'L') l++;
            else l = 0;
            if (a > 1 || l > 2) return false;
        }
        return true;
    }
}

/*
count A and L, each step validate. careful to reset L count.
*/

Last updated