Table of Contents

## Problem statement

In the problem ” Student Attendance Record I” we are given a string where each letter represents the attendance detail of a student. The interpretation of letters in the string is as follows:

- ‘A’ means absent.
- ‘P’ means present.
- ‘L’ means late

The student will be rewarded based on his attendance if he is not absent for more than one day or not late continuously for more than two days. Our task is to determine if the student will be rewarded or not.

### Example

str="PPALLP"

true

**Explanation:**

As the student is not absent for more than one day and not late continuously for more than two days so he must be rewarded.

## Approach for Student Attendance Record I Leetcode Solution

### Implementation

This is a basic implementation problem. We need to find out if the student will be rewarded or not. So to reward the student we need to check if he is not absent for more than one day and not late continuously for more than two days. We will follow these steps to perform this check:

- Initialize number of ‘A’ count and ‘L’ count by zero
- Traverse the complete string.
- If the current character is ‘A’ then increment the count of ‘A’ by one.
- If the current character is ‘L’ then increment the count of ‘L’ by one.
- Otherwise, the count of ‘L’ becomes zero.
- Now check if the count of ‘A’ is greater than or equal to 2 or the count of ‘L’ is greater than 2. If the condition is true return false.

- In the end, if all conditions are satisfied then return true.

### C++ code for Student Attendance Record I

#include <bits/stdc++.h> using namespace std; bool checkRecord(string s) { int a=0, l=0; for(int i=0;i<s.size();i++) { if(s[i]=='A') a++; if(s[i]=='L') l++; else l=0; if(a>=2||l>2) return false; } return true; } int main() { string attendence ="PPALLP"; bool ans=checkRecord(attendence); cout<<boolalpha; cout<<ans<<endl; return 0; }

true

### Java code for Student Attendance Record I

import java.util.Arrays; import java.util.Set ; import java.util.HashSet; import java.util.*; public class Tutorialcup { public static boolean checkRecord(String s) { int a=0, l=0; for(int i=0;i<s.length();i++) { if(s.charAt(i)=='A') a++; if(s.charAt(i)=='L') l++; else l=0; if(a>=2||l>2) return false; } return true; } public static void main(String[] args) { String attendence ="PPALLP"; boolean ans=checkRecord(attendence); System.out.println(ans); } }

true

## Complexity Analysis of Student Attendance Record I Leetcode Solution

### Time complexity

The time complexity of the above code is** O(n)** because we are traversing the string only once. Here n is the length of the given string.

### Space complexity

The space complexity of the above code is **O(1)** because we are using only a variable to store answer.