zoukankan      html  css  js  c++  java
  • 力扣(LeetCode)学生出勤记录I 个人题解

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

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

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

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

    示例 1:

    输入: "PPALLP"
    输出: True
    

    示例 2:

    输入: "PPALLL"
    输出: False



    做法比较清晰,当A的次数大于1时,则不奖赏,当L的次数连续出现两次以上时,不奖赏。如果在一个循环里面用到另外一个循环,需要确保数组不要越界。

    代码如下(双重循环):

    class Solution {
        public boolean checkRecord(String s) {
            int absent = 0;
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == 'A') {
                    absent++;
                    if (absent > 1)
                        return false;
                }
                if (s.charAt(i) == 'L') {
                    int late = 0;
                    while (s.charAt(i) == 'L') {
                        late++;
                        if (late > 2)
                            return false;
                    }
                    i--;
                }
    
            }
            return true;
        }
    }

    避免双重循环,重置标记法:

    class Solution {
        public boolean checkRecord(String s) {
            int absent = 0;
            int late = 0;
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == 'A') {
                    absent++;
                    late = 0;
                    if (absent > 1)
                        return false;
                }
                if (s.charAt(i) == 'L') {
                    late++;
                    if (late > 2)
                        return false;
                } else
                    late = 0;
            }
    
            return true;
        }
    }
  • 相关阅读:
    Service Location Protocol SLP
    [http 1.1] M-POST
    安装 wbemcli
    [http 1.1] M-POST w3
    [CODEVS 1288]埃及分数
    [NOIp 2013]货车运输
    [测试题]gentree
    [USACO 07NOV]Cow Relays
    [USACO 13DEC]Vacation Planning(gold)
    [CODEVS 2495]水叮当的舞步
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10388611.html
Copyright © 2011-2022 走看看