LeetCode简单题之学生出勤记录 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 <= 1000
s[i] 為 ‘A’、‘L’ 或 ‘P’
來源:力扣(LeetCode)
解題思路
??遍歷整個字符串,如果是A的話統計一下缺席數并將遲到數置為0,如果是L的話統計一下遲到數,并及時判斷遲到數是否已經超過兩天,如果是P的話只需要將遲到數置為0即可。當然在這個題目中也可以及時判斷缺席數是否小于2如果小于2的話返回結果就可以了,但是考慮到一般情況中缺席的情況應該是少數的,如果是及時判斷缺席數的話會增加系統判斷次數。
class Solution:def checkRecord(self, s: str) -> bool:A=0L=0for i in s:if i=='A':A+=1L=0elif i=='L':L+=1if L>2:return Falseelse:L=0return True if A<2 else False
總結
以上是生活随笔為你收集整理的LeetCode简单题之学生出勤记录 I的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之两个数组的交集
- 下一篇: LeetCode简单题之数组拆分 I