551. 学生出勤记录 I

给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:

‘A’:Absent,缺勤
‘L’:Late,迟到
‘P’:Present,到场
如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:

按 总出勤 计,学生缺勤(‘A’)严格 少于两天。
学生 不会 存在 连续 3 天或 3 天以上的迟到(‘L’)记录。
如果学生可以获得出勤奖励,返回 true ;否则,返回 false 。

示例 1:

输入:s = “PPALLP”
输出:true
解释:学生缺勤次数少于 2 次,且不存在 3 天或以上的连续迟到记录。
示例 2:

输入:s = “PPALLL”
输出:false
解释:学生最后三天连续迟到,所以不满足出勤奖励的条件。

提示:

1 <= s.length <= 1000
s[i] 为 ‘A’、‘L’ 或 ‘P’

解题思路

  • L:变量代表连续迟到的天数
  • A:代表缺勤的总天数

最后根据A和L的按照出勤奖励的条件:

  • 按 总出勤 计,学生缺勤(‘A’)严格 少于两天。
  • 学生 不会 存在 连续 3 天或 3 天以上的迟到(‘L’)记录。

如果在更新缺勤次数和连续迟到次数之后,出现缺勤次数大于或等于 2 或者连续迟到次数大于或等于 3,则该出勤记录不满足可奖励的要求,返回false。如果遍历结束时未出现出勤记录不满足可奖励的要求的情况,则返回 true。

代码

class Solution {public boolean checkRecord(String s) {int A=0,L=0;for (int i = 0; i < s.length(); i++) {if (s.charAt(i)=='A'){if (++A==2)return false;}else if (s.charAt(i)=='L'){if (++L>=3)return false;continue;}L=0;}return true;}
}
  • 时间复杂度:O(n),其中 n 是字符串 s 的长度。需要遍历字符串 s 一次。
  • 空间复杂度:O(1)。

551. 学生出勤记录相关推荐

  1. 551. 学生出勤记录 I

    链接:551. 学生出勤记录 I 题解: class Solution { public:bool checkRecord(string s) {std::unordered_map<char, ...

  2. 力扣 -- 551. 学生出勤记录 I 、 552. 学生出勤记录 II

    目录 551. 学生出勤记录 一 .题目描述 二. 实现思路以及代码 552. 学生出勤记录 II 一 .题目描述 二. 实现思路以及代码 551. 学生出勤记录 一 .题目描述 给你一个字符串 s  ...

  3. Java实现 LeetCode 551 学生出勤记录 I(暴力大法好)

    551. 学生出勤记录 I 给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个 ...

  4. C++Python描述 LeetCode 551. 学生出勤记录 I

    C++&Python描述 LeetCode 551. 学生出勤记录 I   大家好,我是亓官劼(qí guān jié ),在公众号.CSDN.GitHub.B站.华为开发者论坛等平台分享一些 ...

  5. LeetCode 551. 学生出勤记录 I

    1. 题目 给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生的出勤记录中 ...

  6. 551.学生出勤记录 I(简单)

    给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生的出勤记录中不超过一个' ...

  7. 【leetcode】551. 学生出勤记录 I(student-attendance-record-i)(模拟)[简单]

    链接 https://leetcode-cn.com/problems/student-attendance-record-i/ 耗时 解题:8 min 题解:5 min 题意 给你一个字符串 s 表 ...

  8. 551.学生出勤记录1

    给你一个字符串s中表示一个学生的出勤记录,其中的每个字符用来标记每天的出勤情况(缺勤,迟到,到场).记录中只含下面三种字符: 1.'A':Absent,缺勤 2.'L':Late,迟到 3.'p'Pr ...

  9. leetcode 551. 学生出勤记录 I(Java版)

    题目 https://leetcode-cn.com/problems/student-attendance-record-i/ 题解 public class Solution {public bo ...

最新文章

  1. Error: Aesthetics must be either length 1 or the same as the data (5): fill
  2. C#对Excel的一些操作【一】
  3. DNS原理及其解析过程(转)
  4. rt-thread 自动初始化机制分析-关于编译链接及段信息
  5. 如何制作linux系统硬盘,教你制作Linux操作系统的Boot/Root盘
  6. 软件工程——结对编程第一次作业
  7. python长整数相乘_python写的大整数相乘的方法
  8. c程序编写x的y次方的方法
  9. JAVA进阶教学之(StringBuider进行字符串拼接)
  10. 写得蛮好的linux学习笔记五-认识SHELL(收藏)
  11. Fc冒险岛JAVA源码_FC冒险岛金手指
  12. 3dmax、python3、Rational Rose、DTLite、commons-math3、VM12、DreamWeaver、SPSS、sqlserver2008、mySQL等软件安装包最全集合
  13. Python常用模块 之 re模块
  14. Android 阿里云镜像谷歌仓库
  15. HDU 6319 Ascending Rating(单调队列)
  16. [JPA错误]javax.persistence.EntityNotFoundException: Unable to find xxx
  17. java开发微信公众号,公众号与java后台获取连接,自动回复,关注获取用户信息,取消关注删除用户信息
  18. 学习篇之华为快应用的开发(一)
  19. 时间片轮转算法的实现
  20. java内部类写法_Java匿名内部类的写法示例

热门文章

  1. Linux C++线程池实例
  2. Linux下串口通信详解
  3. 安装Ubuntu RISC V toolchain失败(网速、git配置原因)
  4. Java高级工程师面试实战,mysqlsettimeout
  5. 还没吃透内存缓存LruCache实现原理的看这篇文章,跳槽薪资翻倍
  6. Django框架是什麼?
  7. bash 的相关配置
  8. Mingw编译DLib
  9. 关于Linux的总结(三)
  10. 今天学习Flex3.2嵌入图片,值得说道的是如何嵌入scale-9 缩放的图像