551. 学生出勤记录 I
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:
- 'A' : Absent,缺勤
- 'L' : Late,迟到
- 'P' : Present,到场
如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:
输入: "PPALLP" 输出: True
示例 2:
输入: "PPALLL" 输出: False
解法一
//时间复杂度O(n), 空间复杂度O(1)
class Solution {
public:
bool checkRecord(string s) {
int abasent = 0, late = 0;
for(char r : s) {
if(r == 'L') late++;
else late = 0;
if(r == 'A') abasent++;
if(abasent == 2 || late == 3) return false;
}
return true;
}
};
思路: 变量abasent记录字符'A'出现的总次数,变量late记录字符'L'连续出现的次数,对原字符串遍历,如果abasent到达2,或者late到3,返回false。否则遍历完成返回true。
2019/05/31 20:56