1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/二进制字符串前缀一致的次数 [number-of-times-binary-string-is-prefix-aligned].html
2022-03-29 12:43:11 +08:00

46 lines
2.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>给你一个长度为 <code>n</code> 、下标从 <strong>1</strong> 开始的二进制字符串,所有位最开始都是 <code>0</code> 。我们会按步翻转该二进制字符串的所有位(即,将 <code>0</code> 变为 <code>1</code>)。</p>
<p>给你一个下标从 <strong>1</strong> 开始的整数数组 <code>flips</code> ,其中 <code>flips[i]</code> 表示对应下标 <code>i</code> 的位将会在第 <code>i</code> 步翻转。</p>
<p>二进制字符串 <strong>前缀一致</strong> 需满足:在第 <code>i</code> 步之后,在 <strong></strong> 区间&nbsp;<code>[1, i]</code> 内的所有位都是 1 ,而其他位都是 0 。</p>
<p>返回二进制字符串在翻转过程中 <strong>前缀一致</strong> 的次数。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>flips = [3,2,4,1,5]
<strong>输出:</strong>2
<strong>解释:</strong>二进制字符串最开始是 "00000" 。
执行第 1 步:字符串变为 "00100" ,不属于前缀一致的情况。
执行第 2 步:字符串变为 "01100" ,不属于前缀一致的情况。
执行第 3 步:字符串变为 "01110" ,不属于前缀一致的情况。
执行第 4 步:字符串变为 "11110" ,属于前缀一致的情况。
执行第 5 步:字符串变为 "11111" ,属于前缀一致的情况。
在翻转过程中,前缀一致的次数为 2 ,所以返回 2 。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>flips = [4,1,2,3]
<strong>输出:</strong>1
<strong>解释:</strong>二进制字符串最开始是 "0000" 。
执行第 1 步:字符串变为 "0001" ,不属于前缀一致的情况。
执行第 2 步:字符串变为 "1001" ,不属于前缀一致的情况。
执行第 3 步:字符串变为 "1101" ,不属于前缀一致的情况。
执行第 4 步:字符串变为 "1111" ,属于前缀一致的情况。
在翻转过程中,前缀一致的次数为 1 ,所以返回 1 。</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>n == flips.length</code></li>
<li><code>1 &lt;= n &lt;= 5 * 10<sup>4</sup></code></li>
<li><code>flips</code> 是范围 <code>[1, n]</code> 中所有整数构成的一个排列</li>
</ul>