551、学生出勤记录 I
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:
1、‘A’ : Absent,缺勤
2、‘L’ : Late,迟到
3、‘P’ : Present,到场
如果一个学生的出勤记录中不超过一个’A’(缺勤)并且不超过两个连续的’L’(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
难度:简单 题目地址:https://leetcode-cn.com/problems/student-attendance-record-i/
1、C语言代码:
bool checkRecord(char * s){
int c = 0;
for(int i = 0;s[i] != '\0';i++){
if(s[i] == 'L' && s[i+1] == 'L' && s[i+2] == 'L')
return false;
if(s[i] == 'A')
c++;
if(c >= 2)
return false;
}
return true;
}
解释: 遍历字符串,如果有超过3个连续的’L’或者有超过2个’A’,则返回false,否则返回true。
知识点回顾: 无。
2、Java代码:
class Solution {
public boolean checkRecord(String s) {
return s.indexOf("A") == s.lastIndexOf("A") && !s.contains("LLL");
}
}
解释: 如果数组中没有超过2个’A’或者不存在"LLL",则返回true,否则返回false。
知识点回顾:
1、indexOf() 方法有以下四种形式:
- public int indexOf(int ch): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- public int indexOf(int ch, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- int indexOf(String str, int fromIndex): 返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
2、lastIndexOf() 方法有以下四种形式:
- public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- public int lastIndexOf(int ch, int fromIndex): 返返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- public int lastIndexOf(String str): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- public int lastIndexOf(String str, int fromIndex): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
3、contains()函数用于确定一个字符串是否包含指定的子串。
3、Python代码:
class Solution:
def checkRecord(self, s: str) -> bool:
return s.count('A')<=1 and 'LLL' not in s
解释: 类似于Java的求解思路。
知识点回顾: 无。
4、JavaScript代码:
/**
* @param {string} s
* @return {boolean}
*/
var checkRecord = function (s) {
return s.indexOf('A') === s.lastIndexOf('A') && s.indexOf('LLL') === -1
};
解释: 类似于Java的求解思路。
知识点回顾:
1、lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。
注意: 该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串。开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。
如果没有找到匹配字符串则返回 -1 。
注意:lastIndexOf() 方法是区分大小写的!
语法:string.lastIndexOf(searchvalue,start)
searchvalue:必需。规定需检索的字符串值。
start:可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。
返回值:查找的字符串最后出现的位置,如果没有找到匹配字符串则返回 -1。
2、indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
注意: indexOf() 方法区分大小写。
语法:string.indexOf(searchvalue,start)
searchvalue:必需。规定需检索的字符串值。
start:可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。
返回值:查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。