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)/将单词恢复初始状态所需的最短时间 II [minimum-time-to-revert-word-to-initial-state-ii].html

57 lines
2.1 KiB
HTML
Raw Normal View History

2024-02-09 01:05:41 +08:00
<p>给你一个下标从 <strong>0</strong> 开始的字符串 <code>word</code> 和一个整数 <code>k</code></p>
<p>在每一秒,你必须执行以下操作:</p>
<ul>
<li>移除 <code>word</code> 的前 <code>k</code> 个字符。</li>
<li><code>word</code> 的末尾添加 <code>k</code> 个任意字符。</li>
</ul>
<p><strong>注意 </strong>添加的字符不必和移除的字符相同。但是,必须在每一秒钟都执行 <strong>两种 </strong>操作。</p>
<p>返回将 <code>word</code> 恢复到其 <strong>初始 </strong>状态所需的 <strong>最短 </strong>时间(该时间必须大于零)。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<pre>
<strong>输入:</strong>word = "abacaba", k = 3
<strong>输出:</strong>2
<strong>解释:</strong>
第 1 秒,移除 word 的前缀 "aba",并在末尾添加 "bac" 。因此word 变为 "cababac"。
第 2 秒,移除 word 的前缀 "cab",并在末尾添加 "aba" 。因此word 变为 "abacaba" 并恢复到始状态。
可以证明2 秒是 word 恢复到其初始状态所需的最短时间。
</pre>
<p><strong class="example">示例 2</strong></p>
<pre>
<strong>输入:</strong>word = "abacaba", k = 4
<strong>输出:</strong>1
<strong>解释:
</strong>第 1 秒,移除 word 的前缀 "abac",并在末尾添加 "caba" 。因此word 变为 "abacaba" 并恢复到初始状态。
可以证明1 秒是 word 恢复到其初始状态所需的最短时间。
</pre>
<p><strong class="example">示例 3</strong></p>
<pre>
<strong>输入:</strong>word = "abcbabcd", k = 2
<strong>输出:</strong>4
<strong>解释:</strong>
每一秒,我们都移除 word 的前 2 个字符,并在 word 末尾添加相同的字符。
4 秒后word 变为 "abcbabcd" 并恢复到初始状态。
可以证明4 秒是 word 恢复到其初始状态所需的最短时间。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= word.length &lt;= 10<sup>6</sup></code></li>
<li><code>1 &lt;= k &lt;= word.length</code></li>
<li><code>word</code>仅由小写英文字母组成。</li>
</ul>