给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
链接:https://leetcode-cn.com/problems/student-attendance-record-i
更改之前的代码
bool checkRecord(char * s){ int i,cntA=0,j=0,cntL=1; int len = strlen(s); for(i=0;i<len;i++) { j=i+1; if(s[i]=='A') { cntA++; } if(i!=len&&s[i]==s[j]&&s[i]=='L') { cntL++; } else { cntL = 1; } if(cntA>1) { return false; } if(cntL>2) return false; } return true; }
更改后的代码:更加简洁
bool checkRecord(char * s){ int i,cntA=0; int len = strlen(s); for(i=0;i<len;i++) { if(s[i]=='A') if((++cntA)>1) return false; if(s[i]=='L'&&s[i+1]=='L'&&s[i+2]=='L') { return false; } } return true; }
附加JAVA一行代码
return !((s.indexOf("A")!=s.lastIndexOf("A"))||(s.indexOf("LLL")!=-1));