昨天休息了,并且仔细思考了该怎么继续下去,坚持是个好习惯,我选择上力扣每天刷一题
题目:学生出勤记录
题解
这一题算是比较简单的一题,考察的是字符串的操作,学生获得出勤奖励只要满足两个条件:1.缺勤天数<2天 2.连续迟到天数<3天
这里要注意的是连续两个字,如果出现这样的LALL学生任然可以获得出勤奖励,因为迟到并不连续,所以这题的解法就很清晰了
遍历一遍字符串s,分别开两个变量记录A出现的次数和L出现的次数,假设它们是numa和numl
如果s【i】等于A,那么numa加一,一旦numa等于2就说明不符合条件了,可以直接return
如果s【i】等于L,那么numl加一,一旦numl等于3就说明不符合条件了,可以直接return,但numl有点特殊,它必须连续,所以我们一旦遇到s【i】不是L,直接将numl重置为0就好了
AC代码
class Solution
{
public:
bool checkRecord(string s)
{
int lens=s.size();
int numa=0,numl=0;
for (int i=0;i<s.size();i++)
{
if(s[i]=='A')numa++;
if(numa==2)
{
return false;
}
if(s[i]=='L')numl++;
else numl=0;
if(numl==3)
{
return false;
}
}
return true;
}
};
感谢您的观看