551. Student Attendance Record I

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011775905/article/details/79965503

问题描述:一个字符串中如果连续出现三次L或者A出现总数超过两次,返回false。
思路:遍历char数组,根据遍历到的字符判断。
原答案:

    public boolean checkRecord(String s) {
        char [] cArray=s.toCharArray();
        boolean contn=false;
        int lNum=0;
        int aNum=0;
        for(char c:cArray){
            if(c=='L'){
                if(lNum==2)
                    return false;
                else
                    lNum++;
            }else{
                lNum=0;
                if(c=='A'){
                if(aNum==1)
                    return false;
                else
                    aNum++;
                }
            }
        }
        return true;
    }

最佳答案与思路一致。然而有别的解值得关注。

public boolean checkRecord(String s) {
    return !s.matches(".*LLL.*|.*A.*A.*");
}

效率没有那么高,但是简洁性却很好。

阅读更多

没有更多推荐了,返回首页