Leetcode551. 学生出勤记录 I

题目

给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:

'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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容