「每日LeetCode」2022年10月3日

本文最后更新于:2023年3月19日 晚上

  1. 检查二进制字符串字段

1784. 检查二进制字符串字段

输入:s = “1001” 输出:false 解释:由连续若干个  ‘1’ 组成的字段数量为 2,返回 false 输入:s = “110” 输出:true
给你一个二进制字符串 s ,该字符串 不含前导零
如果 s 包含 零个或一个由连续的 ‘1’ 组成的字段 ,返回 true 。否则,返回 false 。
如果 s 中 由连续若干个 ‘1’ 组成的字段 数量不超过 1,返回 true 。否则,返回 false 。

示例 1:
输入:s = “1001” 输出:false 解释:由连续若干个  ‘1’ 组成的字段数量为 2,返回 false
示例 2:
输入:s = “110” 输出:true

提示:

  • 1 <= s.length <= 100
  • s[i] 为 ‘0’ 或 ‘1’
  • s[0] 为 ‘1’
  • target 是一个小写字母

思路

按题意模拟即可

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* @param {string} s
* @return {boolean}
*/
var checkOnesSegment = function (s) {
let flag = false,
count = 0;
for (const char of s) {
if (char === "1") {
flag = true;
} else {
if (!flag) continue;
if (count > 0) return false;
flag = false;
count++;
}
}
count += flag ? 1 : 0;
return count === 1;
};