题目:
??给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:
‘A’:Absent,缺勤 ‘L’:Late,迟到 ‘P’:Present,到场 如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:
按 总出勤 计,学生缺勤(‘A’)严格 少于两天。 学生 不会 存在 连续 3 天或 3 天以上的迟到(‘L’)记录。 如果学生可以获得出勤奖励,返回 true ;否则,返回 false 。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/student-attendance-record-i
题解:
??对函数输入字符串,遍历所有字符,首先应当判断这两种情况是否有“L”(迟到)计数,如果达到三次就应该返回false,判断连续则是通过定义一个L_count来计数,如果读到“L”加一,否则清零。判断是否缺勤则由通过计数‘A’是否达到2来判断。 问题bug:连续三天中如有一天缺勤,另外两天迟到,居然还算全勤?
class Solution:
def checkRecord(self, s: str) -> bool:
l = len(s)
A_count = 0
L_count = 0
for i in range(l):
if s[i] == 'A':
L_count = 0
A_count+=1
if A_count == 2:
return False
elif s[i] == 'L':
L_count+=1
if L_count == 3:
return False
else:
L_count = 0
continue
return True
s = input("请输入信息:")
Sol = Solution()
res = Sol.checkRecord(s)
if res == True:
print("true")
else:
print("false")
|