zoukankan      html  css  js  c++  java
  • LeetCode 551. Student Attendance Record I (C++)

    题目:

    You are given a string representing an attendance record for a student. The record only contains the following three characters:

    1. 'A' : Absent.
    2. 'L' : Late.
    3. 'P' : Present.

    A student could be rewarded if his attendance record doesn't contain more than one 'A' (absent) or more than two continuous 'L' (late).

    You need to return whether the student could be rewarded according to his attendance record.

    Example 1:

    Input: "PPALLP"
    Output: True
    

    Example 2:

    Input: "PPALLL"
    Output: False

    分析:

    给定一个string,其中包含A,L,P,如果多于1个A,或者多于连续2个L则返回False,否则返回True。

    我们定义Lcnums表示L连续的数量,Anums表示A的数量,对给定的s遍历。

    首先判断字符是不是A,如果是则Anums加1,否则什么都不做。继续判断这个字符是不是L,如果是则Lcnums加1,否则将Lcunms清零,注意遍历的时候只要字符不是L都要将Lcnums清零,然后判断Lcnums和Anums的数量是否符合要求即可。

    程序:

    class Solution {
    public:
        bool checkRecord(string s) {
            int Lcnums = 0;
            int Anums = 0;
            for(auto i:s){
                if(i == 'A') Anums++;
                if(i == 'L'){
                    Lcnums++;
                }
                else
                    Lcnums = 0;
                if(Anums == 2||Lcnums == 3){
                    return false;
                }
            }
            return true;
        }
    };
  • 相关阅读:
    python 开发中的常用功能
    python 栈&队列&列表的区别
    python 内置函数简介及其作用
    python 正则表达式详解
    python scrapy
    python 文件操作
    python 爬虫实例
    浅谈tcp 与udp
    php正则匹配video 中或者img的宽度和高度。
    android技术积累:开发规范
  • 原文地址:https://www.cnblogs.com/silentteller/p/10727145.html
Copyright © 2011-2022 走看看