☀️前言☀️
算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!
第一遍,不求最优解,但求能过!!!
🙀作者简介🙀
大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!
📢 :❤布小禅❤
📢 作者专栏:
这是我刷第 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
💁二、题目解析💁
分析题意⭐️
因为题目上没有说到场,所以设置两个变量l和a接收迟到和缺勤的次数💁
记住这句话 **
不能连续迟到三天以及以上
**‼️那么怎么实现呢⁉️
我们可以让 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 = 0 a = 0 for i in s: if i=='L': l+=1 if l>=3: return False elif i=='A': a+=1 l=0 if a>=2: return False elif i=='P': l=0 return 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; } }
🌔结语🌔
坚持最重要,每日一题必不可少!😸