前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【leetcode刷题】T82-学生出勤记录 I

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

作者头像
木又AI帮
修改2019-07-18 10:21:41
4060
修改2019-07-18 10:21:41
举报
文章被收录于专栏:木又AI帮木又AI帮

【题目】

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

  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;
    }
};
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档