题目

给你一个字符串 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’
来源:力扣(LeetCode)

解题思路

  遍历整个字符串,如果是A的话统计一下缺席数并将迟到数置为0,如果是L的话统计一下迟到数,并及时判断迟到数是否已经超过两天,如果是P的话只需要将迟到数置为0即可。当然在这个题目中也可以及时判断缺席数是否小于2如果小于2的话返回结果就可以了,但是考虑到一般情况中缺席的情况应该是少数的,如果是及时判断缺席数的话会增加系统判断次数。

class Solution:def checkRecord(self, s: str) -> bool:A=0L=0for i in s:if i=='A':A+=1L=0elif i=='L':L+=1if L>2:return Falseelse:L=0return True if A<2 else False

LeetCode简单题之学生出勤记录 I相关推荐

  1. 算法第四题:学生出勤记录情况统计 2021-08-19

    一.问题描述 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':Pre ...

  2. 【算法千题案例】每日LeetCode打卡——83.学生出勤记录 I

  3. LeetCode简单题之学生分数的最小差值

    题目 给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数.另给你一个整数 k . 从数组中选出任意 k 名学生的分数,使这 k 个分数间 最高分 和 最 ...

  4. LeetCode 552. 学生出勤记录 II(动态规划)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 10^9 + 7的值. 学生出勤记录是只 ...

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

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

  6. LeetCode——552. 学生出勤记录 II(Student Attendance Record II)[困难]——分析及代码(Java)

    LeetCode--552. 学生出勤记录 II[Student Attendance Record II][困难]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 ( ...

  7. leetcode: 552. 学生出勤记录 II

    552. 学生出勤记录 II 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/student-attendance-record-ii/ 可以用字符串 ...

  8. 【Leetcode】552. 学生出勤记录 II

    552. 学生出勤记录 II 题目描述 解题思路 题目描述 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent ...

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

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

最新文章

  1. java的默认_java默认包的使用
  2. C/C++网络编程中的TCP保活
  3. 每天一道LeetCode-----复制无向图
  4. 单点登陆的三种实现方式
  5. WebApi权限验证流程的设计和实现
  6. 文本字符分析python_Python实现字符串匹配算法代码示例
  7. chrome html 读写文件路径,Chrome浏览器支持直接读写本地文件了
  8. csv导入mysql_mysql导入超大csv指南
  9. 如何右键文件夹以Sublime 打开
  10. mysql中修改表的还原命令_MySQL的增、删、改、查和备份、恢复的命令
  11. 贪心 FZU 2013 A short problem
  12. 分布式系统原理_分布式系统架构设计 第19式 分布式系统八卦思维模型
  13. ajaxForm和ajaxSubmit实现form的ajax提交的方法
  14. 如何在SVN创建分支版本
  15. 数据库防火墙闪亮登场(好文共赏)
  16. switch()函数 ----by xhxh
  17. win7 修复计算机步骤,解答win7系统桌面上的计算机不见了的修复步骤
  18. android分享图片到qq,Android实现截图分享qq,微信
  19. 在excel中等间距抽取数据
  20. 安装kubectl失败:error: unpacking of archive failed on file /usr/bin/kubectl: cpio: rename

热门文章

  1. dropout,batch norm 区别 顺序
  2. xgboost重要参数2为主但不全要参照1
  3. NLP.TM | GloVe模型及其Python实现
  4. 图像合成与风格转换实战
  5. 从单一图像中提取文档图像:ICCV2019论文解读
  6. ❤️手撕这十道HiveSQL题还不能吊打面试官,却能保你不被吊打❤️【推荐收藏】
  7. 零起点学算法07——复杂一点的表达式计算
  8. java线程触发_java线程
  9. 微信小程序bindtap 与 catchtap 是使用
  10. 设计模式中的六大基本原则