没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
标题中的“学生出勤记录(一次遍历python)1”表明这是一个关于使用Python处理学生出勤数据的问题。描述中提到,我们有一个字符串`s`,它包含三种表示出勤状态的字符——'A'(缺席)、'L'(迟到)和'P'(出席)。我们需要检查学生是否满足获得出勤奖励的条件:缺勤天数少于两天,并且没有连续三天或以上的迟到记录。 标签"leetcode python"提示我们这是一个基于LeetCode平台的编程问题,解决方法是用Python编写代码。 给出的部分内容展示了具体的解决方案。代码定义了一个名为`Solution`的类,其中包含一个名为`checkRecord`的方法,这个方法接受一个字符串`s`作为参数,然后通过遍历字符串来计算缺勤次数(`sum_A`)和连续迟到次数(`sum_L`)。 在遍历过程中,如果遇到'A'字符,缺勤次数加一。如果缺勤次数达到或超过2,立即返回False,因为这表示学生缺勤超过了限制。对于'L'字符,迟到次数累加,若连续迟到次数达到或超过3,同样返回False。遇到'P'字符时,连续迟到计数清零,因为'P'意味着没有迟到,需要重新开始计算连续迟到的天数。 遍历结束后,如果没有提前返回False,说明学生满足出勤奖励条件,因此返回True。 这个算法使用了一次遍历的方法,有效地检查了出勤记录,时间复杂度为O(n),其中n是字符串`s`的长度。这种方法简洁且高效,适用于处理较小规模的数据。在实际应用中,如果面对大量出勤记录,这样的解决方案仍然足够有效。
资源详情
资源评论
资源推荐
学生出勤记录 I
给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺
勤、迟到、到场)。记录中只含下面三种字符:
'A':Absent,缺勤
'L':Late,迟到
'P':Present,到场
如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:
按 总出勤 计,学生缺勤('A')严格 少于两天。
学生 不会 存在 连续 3 天或 连续 3 天以上的迟到('L')记录。
如果学生可以获得出勤奖励,返回 true ;否则,返回 false 。
示例 1:
输入:s = "PPALLP"
输出:true
解释:学生缺勤次数少于 2 次,且不存在 3 天或以上的连续迟到记录。
示例 2:
输入:s = "PPALLL"
输出:false
解释:学生最后三天连续迟到,所以不满足出勤奖励的条件。
class Solution:
def checkRecord(self, s: str) -> bool:
#统计缺勤次数
sum_A=0
#统计连续迟到次数
sum_L=0
for i in s:
if i=='A':
sum_A+=1
if sum_A>=2:
return False
if i=='L':
sum_L+=1
glowlaw
- 粉丝: 28
- 资源: 274
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0