【leetcode】1784. 检查二进制字符串字段,简单题,重拳出击(击败100%用户)

解题思路

1,初始化2个参数i来记录出现了几次连续的‘1’,flag记录‘1’的连续性
2,遍历s
3,若s.charAt(j)=='1’且flag为false判断为首次出现‘1’,执行i++,将flag设置为true。
4,若s.charAt(j)!='1’则关闭‘1’的连续性,设置flag为false。
5,判断i>1范围false,这里可以避免不符合要求的数据,从头遍历到尾。
6,遍历到尾部i仍然没有>1,则返回true

运行结果

执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:39.5 MB, 在所有 Java 提交中击败了58.77%

代码

class Solution {
    public boolean checkOnesSegment(String s) {
        int i = 0 ;
        boolean flag = false;
        for (int j = 0; j < s.length(); j++) {
            if(s.charAt(j)=='1'&&!flag){
                i+=1;
                flag = true;
            }else if(s.charAt(j)!='1'){
                flag = false;
            }
            if (i>1){
                return false;
            }
        }
        return true;
    }

    // public boolean checkOnesSegment(String s) {
    //     String[] strs = s.split("0");
    //     return  strs.length == 1;
    // }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值