刷leetcode-day19

一、题目:

551.学生出勤记录I:

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

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

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

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

示例 1:

输入: "PPALLP"
输出: True

示例 2:

输入: "PPALLL"
输出: False

二、思路:

首先判断字符串中A的数量是否大于1,大于1则返回false。再遍历字符串,如果s[i]为'L',查看s[i+1]和s[i+2]是否也都为‘L’,如果是,返回false。否则,返回true。

三、代码(C++):

  bool checkRecord(string s) {
        int Anum=0;
        for(auto s1:s)
        {
            if(s1=='A')
                ++Anum;
        }
        if(Anum>1)
            return false;
        for(int i=0;i!=s.size();i++)
        {
            if(s[i]=='L')
            {
                if(s[i+1]=='L')
                {
                    if(s[i+2]=='L')
                        return false;
                }
            }
        }
        return true;
    }

全部评论

相关推荐

水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务