首页 > 其他分享 >Leetcode每日一题 20240818 551.学生出勤记录Ⅰ

Leetcode每日一题 20240818 551.学生出勤记录Ⅰ

时间:2024-08-18 17:26:34浏览次数:5  
标签:false 记录 出勤 551 学生 缺勤 迟到 Leetcode 20240818

题目描述

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

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

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

测试案例及提示

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

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

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

解题思路

简单模拟题,一次遍历即可。
代码实现:
C++

class Solution {
public:
    bool checkRecord(string s) {
        int ab = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s[i] == 'A') {
                ab++;
                if (ab >= 2) {
                    return false;
                }
            }
            else if(s[i] == 'L') {
                if (i >= 2 && s[i - 1] == 'L' && s[i - 2] == 'L') {
                    return false;
                }
            } 
        }
        return true;
    }
};

标签:false,记录,出勤,551,学生,缺勤,迟到,Leetcode,20240818
From: https://blog.csdn.net/2301_76443687/article/details/141302519

相关文章

  • [LeetCode] 1367. Linked List in Binary Tree 二叉树中的链表
    Givenabinarytree root anda linkedlistwith head asthefirstnode.ReturnTrueifalltheelementsinthelinkedliststartingfromthe head correspondtosome downwardpath connectedinthebinarytree otherwisereturnFalse.Inthiscontext......
  • 551.学生出勤记录Ⅰ
    1.题目描述给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:'A':Absent,缺勤'L':Late,迟到'P':Present,到场如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:按 总出勤 计,学生缺勤('A')严格 ......
  • 螺旋矩阵(LeetCode)
    题目给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。解题defspiralOrder(matrix):ifnotmatrixornotmatrix[0]:return[]top,bottom=0,len(matrix)-1left,right=0,len(matrix[0])-1......
  • leetcode 21.合并两个有序链表
    leetcode21.合并两个有序链表题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。迭代法:思路:不断迭代,谁小指向谁publicListNodemergeTwoLists(ListNodelist1,ListNodelist2){if(list1==null){......
  • leetcode3.无重复字符的最长子串
    题目:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。思路:滑动窗口算法。最大子串长度=右下标-左下标+1;使用map记录字符的下标,key为字符,value为下标。如果map的key出现重复,说明有重复字符了。找出左下标left,如果重复就刷新左下标。代码:publ......
  • 代码随想录day3 | LeetCode203. 移除链表元素、LeetCode707. 设计链表、LeetCode206.
    代码随想录day3|LeetCode203.移除链表元素、LeetCode707.设计链表、LeetCode206.反转链表为了防止早上写博客上传图片失败,今天试试下午写,发现图片上传正常链表基础文章链接:链表基础C/C++的定义链表节点方式,如下所示://单链表structListNode{intval;/......
  • 区间加法(LeetCode)
    题目        假设你有一个长度为 n 的数组,初始情况下所有的数字均为 0,你将会被给出 k​​​​​​​ 个更新的操作。        其中,每个操作会被表示为一个三元组:[startIndex,endIndex,inc],你需要将子数组 A[startIndex...endIndex](包括startIndex......
  • leetcode面试经典150题-13. 罗马数字转整数
    https://leetcode.cn/problems/roman-to-integer/description/?envType=study-plan-v2&envId=top-interview-150 GOpackageleetcode150import"testing"/*romanMap:=map[string]int{"I":1,"V":......
  • leetcode前缀和(2438. 二的幂数组中查询范围内的乘积)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。描述给你一个正整数 n ,你需要找到一个下标从 0 开始的数组 powers ,它包含 最少 数目的 2 的幂,且它们的和为 n 。powers 数组是 非递减 顺序的。根据前面描述,构造......
  • leetcode线段树(2940. 找到 Alice 和 Bob 可以相遇的建筑)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。描述给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i 栋建筑的高度。如果一个人在建筑 i ,且存在 i<j 的建筑 j 满足 heights[i]<heig......