题目
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
C++解法
#include <iostream>
#include <vector>
#include <map>
#include <set>
using namespace std;
class Solution {
public:
bool checkRecord(string s) {
int aCount = 0;
int lCount = 0;
for (int i = 0; i < s.size(); ++i) {
if (s[i] == 'L') {
if (lCount <= 2) {
++lCount;
}
} else {
if (s[i] == 'A') ++aCount;
if (lCount <= 2) lCount = 0;
}
}
return aCount <= 1 && lCount <= 2;
}
};
int main(int argc, const char * argv[]) {
// insert code here...
Solution solution;
cout << solution.checkRecord("PPALLP") << endl;
cout << solution.checkRecord("PPALLL") << endl;
return 0;
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/student-attendance-record-i