力扣551(java)-学生出勤记录Ⅰ(简单)
题目:
给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:
'A':Absent,缺勤
'L':Late,迟到
'P':Present,到场
如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:
按 总出勤 计,学生缺勤('A')严格 少于两天。
学生 不会 存在 连续 3 天或 连续 3 天以上的迟到('L')记录。
如果学生可以获得出勤奖励,返回 true ;否则,返回 false 。
示例 1:
输入:s = "PPALLP"
输出:true
解释:学生缺勤次数少于 2 次,且不存在 3 天或以上的连续迟到记录。
示例 2:
输入:s = "PPALLL"
输出:false
解释:学生最后三天连续迟到,所以不满足出勤奖励的条件。
提示:
1 <= s.length <= 1000
s[i] 为 'A'、'L' 或 'P'
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/student-attendance-record-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
一、
遍历字符串s,统计出缺勤数和迟到数:
- 如果当前字符s.charAt[i] == 'A', 缺勤数加1,缺勤数absent >= 2,返回false;
- 如果当前字符s.charAt[i] == 'L', 迟到数加1,如果当前字符不为L,则让late = 0 ,统计出的连续迟到数late >= 3,返回false;
- 以上两个条件都不满足,即(absent < 2 && late < 3)返回true。
代码:

二、参考其他答主
用一行代码:


小知识:
1.indexOf(String str) :返回第一次出现的指定子字符串str在此字符串中的索引,如果没有找到子字符串,则返回-1。
1. String.indexOf(String str):返回此字符串中第一次出现指定字符串str的索引,如果不存在,则返回-1;
2. String.indexOf(String str ,int from index):返回此字符串中第一次出现指定子字符串str的索引,从指定索引开始,如果不存在,则返回-1;
3. String.indexOf(int ch): ch – 一个字符(Unicode 代码点),返回此字符串中第一次出现指定字符的索引,如果不存在,则返回-1;
4. String.indexOf(int ch,int fromIndex): 如果值ch的字符出现在此String对象表示的字符序列中,索引不小于fromIndex ,则返回第一个此类出现的索引,如果此字符串中的fromIndex位置或之后没有出现此类字符,则返回-1 。
2.lastIndexOf(String str) :返回在此字符串中最后出现的指定子字符串的索引,如果没有找到子字符串,则返回-1。
1. public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
2. public int lastIndexOf(int ch, int fromIndex): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
3. public int lastIndexOf(String str): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
4. public int lastIndexOf(String str, int fromIndex): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
ch -- 字符
fromIndex -- 开始搜索的索引位置
str -- 要搜索的子字符串
3.contains(String s):用来判断当前字符串是否含有参数指定的字符串,如果此字符串包含,此方法返回true,否则返回false。
力扣551(java)-学生出勤记录Ⅰ(简单)的更多相关文章
- Java实现 LeetCode 551 学生出勤记录 I(暴力大法好)
551. 学生出勤记录 I 给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个 ...
- 551.学生出勤记录I
/* * @lc app=leetcode.cn id=551 lang=java * * [551] 学生出勤记录 I * * https://leetcode-cn.com/problems/st ...
- Java实现 LeetCode 552 学生出勤记录 II(数学转换?还是动态规划?)
552. 学生出勤记录 II 给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 109 + 7的值. 学生出勤记录是只包含以下三个字符的 ...
- [Swift]LeetCode552. 学生出勤记录 II | Student Attendance Record II
Given a positive integer n, return the number of all possible attendance records with length n, whic ...
- Leetcode 552.学生出勤记录II
学生出勤记录II 给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 109 + 7的值. 学生出勤记录是只包含以下三个字符的字符串: ' ...
- 552 Student Attendance Record II 学生出勤记录 II
给定一个正整数 n,返回长度为 n 的所有可被视为可奖励的出勤记录的数量. 答案可能非常大,你只需返回结果mod 109 + 7的值.学生出勤记录是只包含以下三个字符的字符串: 1.'A' : ...
- 552. 学生出勤记录 II (Hard)
问题描述 552. 学生出勤记录 II (Hard) 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 ...
- 力扣(LeetCode)学生出勤记录I 个人题解
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生的出勤记录中不超过一个' ...
- [LeetCode] Student Attendance Record I 学生出勤记录之一
You are given a string representing an attendance record for a student. The record only contains the ...
- Java设计模式学习记录-简单工厂模式、工厂方法模式
前言 之前介绍了设计模式的原则和分类等概述.今天开启设计模式的学习,首先要介绍的就是工厂模式,在介绍工厂模式前会先介绍一下简单工厂模式,这样由浅入深来介绍. 简单工厂模式 做法:创建一个工厂(方法或类 ...
随机推荐
- be动词 系动词 连缀动词 Linking Verb
be动词 系动词 连缀动词 Linking Verb be 原型 am 第一人称单数形式 is 第三人称单数形式 are 第二人称单数和复数形式 been 过去分词 being 现在分词 was 第一 ...
- viewui tree 自定义化(源码copy出来改动)#添加 获取selected 解决方案
需求: 对树有title的点击效果,右侧有说明文字 和 按钮能点击,不能右键,系统用的壳已经有右键了. 出现的问题: viewui的tree有两年没更新了,对ui这块,是采取的render自定义,但是 ...
- 【数据结构】C语言实现动态扩容数组
// resizable array /* Think about a set of functions that provide a mechanism of resizable array of ...
- 一次对requirements环境的配置
事情是这样的,我需要跑通一个代码,因此要配置环境,但是并不能利用requirements中给的指令直接配置,于是开始找一些其他的解决方法.作为一名小白,总是绕很多弯路. 记下一些蜿蜒. 首先,摘录re ...
- C程序问题归纳(static,auto,register,extern,程序内存分布图,linux下程序的执行过程......)(二)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- CAST电子部单片机方向授课——串口通信 预习文档
CAST电子部单片机方向授课--串口通信 预习文档 课前小准备 安装串口调试助手 第一步:进入Microsoft Store 第二步:在Microsoft Store中搜索 "串口调试助手& ...
- 三维模型3DTile格式轻量化在网络传输中的重要性分析
三维模型3DTile格式轻量化在网络传输中的重要性分析 三维模型3DTile格式轻量化在网络传输中扮演了至关重要的角色.随着数字化和虚拟化技术的发展,越来越多的应用需要通过网络来获取和分享大规模三维地 ...
- TP6框架--EasyAdmin总结:暂时的离别和新的开始
眨眼一下,因为项目初期开发的完成,我与EasyAdmin的缘分也将迎来短暂的离别,有时候静下来,感觉时间过的好快,我从4月到现在,使用EasyAdmin进行项目开发,从一个初识别PHP的菜鸟,到一个能 ...
- .NET开源、免费、强大的交互式绘图库
前言 今天大姚给大家分享一款.NET开源(采用MIT许可证).免费.强大的交互式绘图库,该库能够轻松地实现大型数据集的交互式显示.使用几行代码即可快速创建折线图.柱状图.饼图.散点图等不同类型的图表: ...
- KingbaseES 临时表
临时表在数据库管理和数据处理中有着广泛的应用,主要用于存储临时数据或进行中间计算.临时表中的数据对会话是私有的,每个会话只能看到和修改自己会话的数据. KingbaseES支持本地临时表和全局临时表. ...