[路飞]_leetcode274 周赛1

197 阅读1分钟

5967. 检查是否所有 A 都在 B 之前

给你一个 仅 由字符 'a' 和 'b' 组成的字符串  s 。如果字符串中 每个 'a' 都出现在 每个 'b' 之前,返回 true ;否则,返回 false 。

题解

竞赛的时候的思路,如果出现了b,再出现a一定返回false;所以直接给定义了一个额外变量sign,sign初始值为0,如果遇到b变量sign++;如果遇到a的时候sign一定有b在a之前;根据思路写下如下代码;

赛后查看其他大佬思路;直接给我干蒙了。瞬间感觉我写的代码就跟一坨那啥一样;

大佬思路:判断字符串是否存在'ba'

个人竞赛代码

var checkString = function(s) {
    let sign = 0
    for(let i = 0 ; i < s.length ; i++){
        if(s[i] === 'b'){
            sign++;
        }
        if(s[i] === 'a' && sign > 0) return false
        
    }
    return true

};

大佬代码

var checkString = function(s) {
    return s.indexOf('ba') == -1
};

结语

我要这脑子有何用