mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
50 lines
1.9 KiB
HTML
50 lines
1.9 KiB
HTML
<p>给你一个二进制字符串 <code>s</code> ,你需要将字符串分割成一个或者多个 <strong>子字符串</strong> ,使每个子字符串都是 <strong>美丽</strong> 的。</p>
|
||
|
||
<p>如果一个字符串满足以下条件,我们称它是 <strong>美丽</strong> 的:</p>
|
||
|
||
<ul>
|
||
<li>它不包含前导 0 。</li>
|
||
<li>它是 <code>5</code> 的幂的 <strong>二进制</strong> 表示。</li>
|
||
</ul>
|
||
|
||
<p>请你返回分割后的子字符串的 <strong>最少</strong> 数目。如果无法将字符串 <code>s</code> 分割成美丽子字符串,请你返回 <code>-1</code> 。</p>
|
||
|
||
<p>子字符串是一个字符串中一段连续的字符序列。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre><b>输入:</b>s = "1011"
|
||
<b>输出:</b>2
|
||
<b>解释:</b>我们可以将输入字符串分成 ["101", "1"] 。
|
||
- 字符串 "101" 不包含前导 0 ,且它是整数 5<sup>1</sup> = 5 的二进制表示。
|
||
- 字符串 "1" 不包含前导 0 ,且它是整数 5<sup>0</sup> = 1 的二进制表示。
|
||
最少可以将 s 分成 2 个美丽子字符串。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre><b>输入:</b>s = "111"
|
||
<b>输出:</b>3
|
||
<b>解释:</b>我们可以将输入字符串分成 ["1", "1", "1"] 。
|
||
- 字符串 "1" 不包含前导 0 ,且它是整数 5<sup>0</sup> = 1 的二进制表示。
|
||
最少可以将 s 分成 3 个美丽子字符串。
|
||
</pre>
|
||
|
||
<p><strong>示例 3:</strong></p>
|
||
|
||
<pre><b>输入:</b>s = "0"
|
||
<b>输出:</b>-1
|
||
<b>解释:</b>无法将给定字符串分成任何美丽子字符串。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= s.length <= 15</code></li>
|
||
<li><code>s[i]</code> 要么是 <code>'0'</code> 要么是 <code>'1'</code> 。</li>
|
||
</ul>
|