返回介绍

solution / 1700-1799 / 1784.Check if Binary String Has at Most One Segment of Ones / README_EN

发布于 2024-06-17 01:03:14 字数 3378 浏览 0 评论 0 收藏 0

1784. Check if Binary String Has at Most One Segment of Ones

中文文档

Description

Given a binary string s ​​​​​without leading zeros, return true​​​ _if _s_ contains at most one contiguous segment of ones_. Otherwise, return false.

 

Example 1:

Input: s = "1001"
Output: false
Explanation: The ones do not form a contiguous segment.

Example 2:

Input: s = "110"
Output: true

 

Constraints:

  • 1 <= s.length <= 100
  • s[i]​​​​ is either '0' or '1'.
  • s[0] is '1'.

Solutions

Solution 1: No '1' After '0'

Notice that the string $s$ does not contain leading zeros, which means $s$ starts with '1'.

If the string $s$ contains the substring "01", then $s$ must be a string like "1…01…", in which case $s$ has at least two consecutive '1' segments, which does not satisfy the problem condition, so we return false.

If the string $s$ does not contain the substring "01", then $s$ can only be a string like "1..1000…", in which case $s$ has only one consecutive '1' segment, which satisfies the problem condition, so we return true.

Therefore, we only need to judge whether the string $s$ contains the substring "01".

The time complexity is $O(n)$, where $n$ is the length of the string $s$. The space complexity is $O(1)$.

class Solution:
  def checkOnesSegment(self, s: str) -> bool:
    return '01' not in s
class Solution {
  public boolean checkOnesSegment(String s) {
    return !s.contains("01");
  }
}
class Solution {
public:
  bool checkOnesSegment(string s) {
    return s.find("01") == -1;
  }
};
func checkOnesSegment(s string) bool {
  return !strings.Contains(s, "01")
}
function checkOnesSegment(s: string): boolean {
  let pre = s[0];
  for (const c of s) {
    if (pre !== c && c === '1') {
      return false;
    }
    pre = c;
  }
  return true;
}
impl Solution {
  pub fn check_ones_segment(s: String) -> bool {
    !s.contains("01")
  }
}

Solution 2

function checkOnesSegment(s: string): boolean {
  return !s.includes('01');
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文