Skip to content

Latest commit

 

History

History
106 lines (73 loc) · 2.26 KB

File metadata and controls

106 lines (73 loc) · 2.26 KB

English Version

题目描述

给你一个二进制字符串 s ,该字符串 不含前导零

如果 s 包含 零个或一个由连续的 '1' 组成的字段 ,返回 true​​​ 。否则,返回 false

 

示例 1:

输入:s = "1001"
输出:false
解释:字符串中的 1 没有形成一个连续字段。

示例 2:

输入:s = "110"
输出:true

 

提示:

  • 1 <= s.length <= 100
  • s[i]​​​​ 为 '0''1'
  • s[0]'1'

解法

方法一:0 后面不能有 1

注意到字符串 $s$ 不含前导零,说明 $s$ 以 "1" 开头,若字符串后面出现 "01",则不满足题意。

Python3

class Solution:
    def checkOnesSegment(self, s: str) -> bool:
        for i, c in enumerate(s):
            if c == '0':
                if s[:i].count('1') and s[i + 1:].count('1'):
                    return False
        return True
class Solution:
    def checkOnesSegment(self, s: str) -> bool:
        return '01' not in s

Java

class Solution {
    public boolean checkOnesSegment(String s) {
        return !s.contains("01");
    }
}

C++

class Solution {
public:
    bool checkOnesSegment(string s) {
        return s.find("01") == -1;
    }
};

Go

func checkOnesSegment(s string) bool {
	return !strings.Contains(s, "01")
}

...