vlambda博客
学习文章列表

大白话leetcode系列----551. 学生出勤记录 I

开场白

大白话leetcode系列----551. 学生出勤记录 I

今天再看在讨论推导式的时候,汤总喊了一句今日打卡,简单题目。

大白话leetcode系列----551. 学生出勤记录 I

那必须的相应号召,做打一波卡。


大白话leetcode系列----551. 学生出勤记录 I

题目

大白话leetcode系列----551. 学生出勤记录 I


给你一个字符串 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 <= 1000s[i] 为 'A''L''P'

来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/student-attendance-record-i著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

真是一道简单的题目中规中矩按照题目进行判断即可,代码:

class Solution(object): def checkRecord(self, s): """ :type s: str :rtype: bool """ nums=s.count('A') if nums>=2: return False elif 'LLL' in s: return False else: return True

提交运行:

20ms;嗯.....

进一步改进,试试最近学的推导式

class Solution(object): def checkRecord(self, s): """ :type s: str :rtype: bool """ return False if s.count('A')>=2 or 'LLL' in s else True

一行代码,运行


12ms