Student Attendance Record I
Problem
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.
Constraints
1 <= s.length <= 1000
s[i]
is either'A'
,'L'
, or'P'
.
Solution
The problem Student Attendance Record I
can be solved by simply counting the total number of absent days and checking if the student was late for 3 consecutive days.
Implementation
class Solution
{
public:
bool checkRecord(string s)
{
bool absent = false;
int late = 0;
for (char ch : s)
{
if (ch == 'A')
{
if (absent)
return false;
absent = true;
}
if (ch == 'L')
{
late += 1;
if (late == 3)
return false;
}
else
late = 0;
}
return true;
}
};