551. Student Attendance Record I
/** * 551. Student Attendance Record I * You are given a string s representing an attendance record for a student where each character signifies whether the student was absent, late, or present on that day. * The record only contains the following three characters: 'A': Absent. 'L': Late. 'P': Present. The student is eligible for an attendance award if they meet both of the following criteria: The student was absent ('A') for strictly fewer than 2 days total. The student was never late ('L') for 3 or more consecutive days. Return true if the student is eligible for an attendance award, or false otherwise. Example 1: Input: s = "PPALLP" Output: true Explanation: The student has fewer than 2 absences and was never late 3 or more consecutive days. Example 2: Input: s = "PPALLL" Output: false Explanation: The student was late 3 consecutive days in the last 3 days, so is not eligible for the award. * */ #include <iostream> using namespace std; /** * Solution: keep tracking letter and count it * Time complexity: O(n) * Space complexity: O(1) * */ class Solution { public: bool checkRecord(string s) { int size = s.size(); if (size == 0) { return false; } int absent_count = 0; for (size_t i = 0; i < size; i++) { char ch = s[i]; if (ch == 'A') { absent_count += 1; if (absent_count >= 2) { return false; } } else if (ch == 'L' && i + 2 <= size - 1) { if (s[i + 1] == 'L' && s[i + 2] == 'L') { return false; } } } return true; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2021-01-22 747. Largest Number At Least Twice of Others
2021-01-22 1160. Find Words That Can Be Formed by Characters