LeetCode 551. 学生出勤记录 I
发布日期:2021-07-01 03:23:54 浏览次数:2 分类:技术文章

本文共 1015 字,大约阅读时间需要 3 分钟。

1. 题目

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

'A' : Absent,缺勤'L' : Late,迟到'P' : Present,到场

如果一个学生的出勤记录中

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

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

示例 1:输入: "PPALLP"输出: True示例 2:输入: "PPALLL"输出: False

来源:力扣(LeetCode)

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

2. 解题

  • 按题意模拟
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

转载地址:https://michael.blog.csdn.net/article/details/105717322 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 566. 重塑矩阵
下一篇:LeetCode 532. 数组中的K-diff数对

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年05月06日 00时53分23秒