leetcode 算法题551 (简单139) 学生出勤记录 I
- 题目介绍
给定一个字符串来代表一个学生的出勤记录,
这个记录仅包含以下三个字符:
'A' : Absent,缺勤
'L' : Late,迟到
'P' : Present,到场
如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),
那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
- 示例
输入: “PPALLP”
输出: True
输入: “PPALLL”
输出: False
- 解法一
/**
* @param {string} s
* @return {boolean}
*/
var checkRecord = function(s) {
let i = s.indexOf('A');
if(i > -1) {
if(s.indexOf('A', i + 1) > -1) {
return false;
}
}
return s.indexOf('LLL') === -1;
};
执行用时 : 72 ms, 在所有 JavaScript 提交中击败了90.65%的用户
内存消耗 : 33.8 MB, 在所有 JavaScript 提交中击败了50.00%的用户
- 解法二
/**
* @param {string} s
* @return {boolean}
*/
var checkRecord = function(s) {
let i = 0, countA = 0, countL = 0;
while(i < s.length) {
if(s[i] === 'L') {
countL++;
if(countL > 2) {
return false;
}
i++;
continue;
}
countL = 0;
if(s[i] === 'A') {
countA++;
if(countA > 1) {
return false;
}
}
i++;
}
return true;
};
执行用时 : 92 ms, 在所有 JavaScript 提交中击败了20.86%的用户
内存消耗 : 34 MB, 在所有 JavaScript 提交中击败了42.86%的用户