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;
        }
    };
  • 相关阅读:
    EXCEL中统计个数问题
    Boot Windows XP from a USB flash drive
    转:用VHD文件将Windows 7安装到虚拟磁盘
    CPU性能排名
    活动目录维护
    IE7占用CPU资源非常高
    不得不看:Windows Data Protection
    硬盘模式为UDMA 2.
    转载:NC6400安装Win7系统驱动列表及注意事项
    HP笔记本电池
  • 原文地址:https://www.cnblogs.com/silentteller/p/10727145.html
Copyright © 2011-2022 走看看