题目:
给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:
‘A’:Absent,缺勤
‘L’:Late,迟到
‘P’:Present,到场
如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:
按 总出勤 计,学生缺勤(‘A’)严格 少于两天。
学生 不会 存在 连续 3 天或 连续 3 天以上的迟到(‘L’)记录。
如果学生可以获得出勤奖励,返回 true ;否则,返回 false 。
解答:
class Solution:
def checkRecord(self, s: str) -> bool:
count=0
n=len(s)
i=0
while i<n:
c=s[i]
if c=='A':
count+=1
if count>1:
return False
if c=='L':
start,end=i,i
while i+1<n and s[i+1]=='L':
i+=1
end=i
if end-start>1:
return False
i+=1
return True