• 力扣(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;
        }
    }
  • 相关阅读:
    链表 | 递归删除不带头结点链表所有x元素
    A1016 | 磨人的大模拟
    Ubuntu 下安装 Qt Designer
    shell札记
    A1102 | 反转二叉树
    顺序表 | 二分查找:两个数组合并后的中位数
    A1113 | Integer Set Partition (25)
    A1128 | 逻辑想象能力、简洁高效美观的代码、memset的使用情景
    05.字符串
    04.序列的应用
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10388611.html
Copyright © 2020-2023  润新知