首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LeetCode 551. 学生出勤记录 I

LeetCode 551. 学生出勤记录 I

作者头像
Michael阿明
发布于 2022-11-26 10:28:21
发布于 2022-11-26 10:28:21
5490
举报

1. 题目

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

代码语言:javascript
复制
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场

如果一个学生的出勤记录中 不超过一个’A’(缺勤) 并且 不超过两个连续的’L’(迟到), 那么这个学生会被奖赏。

你需要根据这个学生的出勤记录判断他是否会被奖赏。

代码语言:javascript
复制
示例 1:
输入: "PPALLP"
输出: True

示例 2:
输入: "PPALLL"
输出: False

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/student-attendance-record-i 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 按题意模拟
代码语言:javascript
复制
class Solution {
public:
    bool checkRecord(string s) {
        int A = 0, L = 0;
        char prev = 'x';//前一次,给个不存在的状态
        for(int i = 0; i < s.size(); ++i)
        {
        	if(s[i] == 'A')
        	{
        		A++;//缺勤,一直加
        		if(A > 1)
        			return false;
        		prev = 'A';
        		L = 0;//连续late次数
        	}
        	else if(s[i] == 'L')
        	{
        		if(prev == 'L')
        			L++;//连续late
        		else
        			L=1;
        		prev = 'L';
        		if(L > 2)//连续late超2次
        			return false;
        	}
        	else
        	{
        		prev = 'P';
        		L = 0;
        	}
        }
        return true;
    }
};

4 ms 8.5 MB

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 题目
  • 2. 解题
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档