Description
You are given a string representing an attendance record for a student. The record only contains the following three characters:
'A' : Absent.
'L' : Late.
'P' : Present.
A student could be rewarded if his attendance record doesn't contain more than one 'A' (absent) or more than two continuous 'L' (late).
You need to return whether the student could be rewarded according to his attendance record.
Example 1:
Input: "PPALLP"
Output: True
Example 2:
Input: "PPALLL"
Output: False
题目分析
本题要求 根据学生的出勤登记情况判定其是否可以得奖,已知A代表缺席,L代表迟到。若连续迟到三次及三次以上或缺席一次以上就不能得奖。
C语言代码
bool checkRecord(char* s) {
int len=strlen(s);
int record=0;
int i=0;
bool flag=true;
for(i=0;i<len;i++)
{
if(s[i]=='A') //缺席次数
record++;
if(s[i]=='L'&&s[i+1]=='L'&&s[i+2]=='L' &&s[i+2]!='\0') //连续三次迟到
return false;
}
if(record>1)
flag=false;
return flag;
}
参考文献
[1] https://leetcode.com/problems/student-attendance-record-i/#/description