【leetcode刷题】T82-学生出勤记录 I

2019-07-18 10:21:41 浏览数 (1)

【题目】

给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:

  1. 'A' : Absent,缺勤
  2. 'L' : Late,迟到
  3. 'P' : Present,到场

如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。

你需要根据这个学生的出勤记录判断他是否会被奖赏。

示例 1:

代码语言:javascript复制
输入: "PPALLP"
输出: True

示例 2:

代码语言:javascript复制
输入: "PPALLL"
输出: False

【思路】

统计A的个数,大于1则返回False;统计连续L的个数,大于2则返回False。

【代码】

python版本

代码语言:javascript复制
class Solution(object):
    def checkRecord(self, s):
        """
        :type s: str
        :rtype: bool
        """
        countA = 
        countL = 
        for i, si in enumerate(s):
            if si == 'A':
                countA  = 
                if countA > :
                    return False
            elif si == 'L':
                # 不是连续的L
                if i ==  or s[i-1] != 'L':
                    countL = 
                else:
                    countL  = 
                    if countL > :
                        return False
        return True

C 版本

代码语言:javascript复制
class Solution {
public:
    bool checkRecord(string s) {
        int countA = ;
        int countL = ;
        for(int i=; i<s.size(); i  ){
            if(s[i] == 'A'){
                countA  ;
                if(countA > )
                    return false;
            }
            // 连续的L
            if(s[i] == 'L'){
                if(i ==  || s[i-1] != 'L')
                    countL = ;
                else{
                    countL  ;
                    if(countL > )
                        return false;
                }
            }
        }
        return true;
    }
};

0 人点赞