LeetCode刷题551-简单-学生出勤记录 I

2023-11-02 11:31

本文主要是介绍LeetCode刷题551-简单-学生出勤记录 I,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

☀️前言☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

第一遍,不求最优解,但求能过!!!

🙀作者简介🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

📢 博客主页:❤布小禅❤
📢 作者专栏:
❤Python❤
❤Java❤

❤力扣题❤

这是我刷第 20/100 道力扣简单题

💗一、题目描述💗

给你一个字符串 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’
通过次数34,327提交次数62,973

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/student-attendance-record-i

💁二、题目解析💁

分析题意⭐️

因为题目上没有说到场,所以设置两个变量la接收迟到和缺勤的次数💁

记住这句话 **不能连续迟到三天以及以上 **‼️

那么怎么实现呢⁉️

我们可以让 l 变量迟到一次+1,然后下一次如果是缺勤或者到场,就将 l 变量重新赋值为0 🏁

理论成立,实战开始。注意‼️这不是演习‼️‼️‼️

发车啦​发车啦​!​快上车​!🚗

我们先遍历数组,判断元素

如果是 ‘P’ ✔️ 就将记录迟到的变量 l 赋值为0

如果是 ‘A’✔️ 就将记录迟到的变量 l 赋值为0,并将记录缺勤的变量 a的值+1

如果是 ‘L’✔️ 就将 l的值变量+1

🏃三、代码实现🏃

☁️1️⃣. python☁️

class Solution:def checkRecord(self, s: str) -> bool:l = 0a = 0for i in s:if i=='L':l+=1if l>=3:return Falseelif i=='A':a+=1l=0if a>=2:return Falseelif i=='P':l=0return True

⚡️2️⃣. java⚡️

class Solution {public boolean checkRecord(String s) {int p,a,l;p=0;a=0;l=0;for(int i=0;i<s.length();i++){if (s.charAt(i)=='P') {p++;l=0;}else if(s.charAt(i)=='A') {a++;l=0;if(a>=2){return false;}}else {l++;if(l>=3){return false;}}}return true;}
}

❄️3️⃣. C#❄️

public class Solution {public bool CheckRecord(string s) {int p,a,l;p=0;l=0;a=0;foreach(char _s in s){if (_s=='P') {p++;l=0;}else if(_s=='A') {a++;l=0;if(a>=2){return false;}}else {l++;if(l>=3){return false;}}}return true;}}

🌔结语🌔

坚持最重要,每日一题必不可少!😸

在这里插入图片描述

这篇关于LeetCode刷题551-简单-学生出勤记录 I的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/330319

相关文章

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder