mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
56 lines
2.1 KiB
HTML
56 lines
2.1 KiB
HTML
<p>给你一个字符串 <code>s</code> ,<strong>下标从 0 开始</strong> ,且长度为偶数 <code>n</code> 。字符串 <strong>恰好</strong> 由 <code>n / 2</code> 个开括号 <code>'['</code> 和 <code>n / 2</code> 个闭括号 <code>']'</code> 组成。</p>
|
||
|
||
<p>只有能满足下述所有条件的字符串才能称为 <strong>平衡字符串</strong> :</p>
|
||
|
||
<ul>
|
||
<li>字符串是一个空字符串,或者</li>
|
||
<li>字符串可以记作 <code>AB</code> ,其中 <code>A</code> 和 <code>B</code> 都是 <strong>平衡字符串</strong> ,或者</li>
|
||
<li>字符串可以写成 <code>[C]</code> ,其中 <code>C</code> 是一个 <strong>平衡字符串</strong> 。</li>
|
||
</ul>
|
||
|
||
<p>你可以交换 <strong>任意</strong> 两个下标所对应的括号 <strong>任意</strong> 次数。</p>
|
||
|
||
<p>返回使<em> </em><code>s</code> 变成 <strong>平衡字符串</strong> 所需要的 <strong>最小</strong> 交换次数。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>s = "][]["
|
||
<strong>输出:</strong>1
|
||
<strong>解释:</strong>交换下标 0 和下标 3 对应的括号,可以使字符串变成平衡字符串。
|
||
最终字符串变成 "[[]]" 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>s = "]]][[["
|
||
<strong>输出:</strong>2
|
||
<strong>解释:</strong>执行下述操作可以使字符串变成平衡字符串:
|
||
- 交换下标 0 和下标 4 对应的括号,s = "[]][][" 。
|
||
- 交换下标 1 和下标 5 对应的括号,s = "[[][]]" 。
|
||
最终字符串变成 "[[][]]" 。
|
||
</pre>
|
||
|
||
<p><strong>示例 3:</strong></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>s = "[]"
|
||
<strong>输出:</strong>0
|
||
<strong>解释:</strong>这个字符串已经是平衡字符串。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>n == s.length</code></li>
|
||
<li><code>2 <= n <= 10<sup>6</sup></code></li>
|
||
<li><code>n</code> 为偶数</li>
|
||
<li><code>s[i]</code> 为<code>'['</code> 或 <code>']'</code></li>
|
||
<li>开括号 <code>'['</code> 的数目为 <code>n / 2</code> ,闭括号 <code>']'</code> 的数目也是 <code>n / 2</code></li>
|
||
</ul>
|