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

举报
布小禅 发表于 2021/08/21 17:53:06 2021/08/21
【摘要】 LeetCode刷题551-简单-学生出勤记录 I

在这里插入图片描述

:sunny:前言:sunny:

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

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

:scream_cat:作者简介:scream_cat:

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

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

❤力扣题❤

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

:heartpulse:一、题目描述:heartpulse:

给你一个字符串 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

:information_desk_person:二、题目解析:information_desk_person:

分析题意:star:

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

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

那么怎么实现呢:interrobang:

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

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

发车啦​发车啦​!​快上车​!:car:

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

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

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

如果是 ‘L’:heavy_check_mark: 就将 l的值变量+1

:runner:三、代码实现:runner:

:cloud::one:. python:cloud:

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

:zap::two:. java:zap:

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;
        
    }
}

:snowflake::three:. C#:snowflake:

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;
        }
    }

:waxing_gibbous_moon:结语:waxing_gibbous_moon:

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

在这里插入图片描述

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。