Student Attendance Record I

easy string

Problem

Given an attendance string of 'A' (absent), 'L' (late), 'P' (present), the student is rewardable if they have strictly fewer than 2 absences total and were never late 3 or more days in a row.

Inputs = "PPALLP"
Outputtrue
One absence (<2), and the longest 'L' streak is 2 (<3).

def check_record(s):
    absences = 0
    late_streak = 0
    for ch in s:
        if ch == 'A':
            absences += 1
            late_streak = 0
        elif ch == 'L':
            late_streak += 1
            if late_streak >= 3:
                return False
        else:
            late_streak = 0
        if absences >= 2:
            return False
    return True
function checkRecord(s) {
  let absences = 0, lateStreak = 0;
  for (const ch of s) {
    if (ch === 'A') { absences++; lateStreak = 0; }
    else if (ch === 'L') {
      lateStreak++;
      if (lateStreak >= 3) return false;
    } else lateStreak = 0;
    if (absences >= 2) return false;
  }
  return true;
}
class Solution {
    public boolean checkRecord(String s) {
        int absences = 0, lateStreak = 0;
        for (char ch : s.toCharArray()) {
            if (ch == 'A') { absences++; lateStreak = 0; }
            else if (ch == 'L') {
                lateStreak++;
                if (lateStreak >= 3) return false;
            } else lateStreak = 0;
            if (absences >= 2) return false;
        }
        return true;
    }
}
bool checkRecord(string s) {
    int absences = 0, lateStreak = 0;
    for (char ch : s) {
        if (ch == 'A') { absences++; lateStreak = 0; }
        else if (ch == 'L') {
            lateStreak++;
            if (lateStreak >= 3) return false;
        } else lateStreak = 0;
        if (absences >= 2) return false;
    }
    return true;
}
Time: O(n) Space: O(1)