mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
93 lines
3.5 KiB
HTML
93 lines
3.5 KiB
HTML
<p>给你一个长度为 <code>n</code> 的字符串 <code>word</code> 和一个整数 <code>k</code> ,其中 <code>k</code> 是 <code>n</code> 的因数。</p>
|
||
|
||
<p>在一次操作中,你可以选择任意两个下标 <code>i</code> 和 <code>j</code>,其中 <code>0 <= i, j < n</code> ,且这两个下标都可以被 <code>k</code> 整除,然后用从 <code>j</code> 开始的长度为 <code>k</code> 的子串替换从 <code>i</code> 开始的长度为 <code>k</code> 的子串。也就是说,将子串 <code>word[i..i + k - 1]</code> 替换为子串 <code>word[j..j + k - 1]</code> 。</p>
|
||
|
||
<p>返回使 <code>word</code> 成为 <strong>K 周期字符串</strong> 所需的<strong> 最少</strong> 操作次数。</p>
|
||
|
||
<p>如果存在某个长度为 <code>k</code> 的字符串 <code>s</code>,使得 <code>word</code> 可以表示为任意次数连接 <code>s</code> ,则称字符串 <code>word</code> 是 <strong>K 周期字符串</strong> 。例如,如果 <code>word == "ababab"</code>,那么 <code>word</code> 就是 <code>s = "ab"</code> 时的 2 周期字符串 。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block" style="
|
||
border-color: var(--border-tertiary);
|
||
border-left-width: 2px;
|
||
color: var(--text-secondary);
|
||
font-size: .875rem;
|
||
margin-bottom: 1rem;
|
||
margin-top: 1rem;
|
||
overflow: visible;
|
||
padding-left: 1rem;
|
||
">
|
||
<p><strong>输入:</strong><span class="example-io" style="
|
||
font-family: Menlo,sans-serif;
|
||
font-size: 0.85rem;
|
||
">word = "leetcodeleet", k = 4</span></p>
|
||
|
||
<p><strong>输出:</strong><span class="example-io" style="
|
||
font-family: Menlo,sans-serif;
|
||
font-size: 0.85rem;
|
||
">1</span></p>
|
||
|
||
<p><strong>解释:</strong>可以选择 i = 4 和 j = 0 获得一个 4 周期字符串。这次操作后,word 变为 "leetleetleet" 。</p>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block" style="
|
||
border-color: var(--border-tertiary);
|
||
border-left-width: 2px;
|
||
color: var(--text-secondary);
|
||
font-size: .875rem;
|
||
margin-bottom: 1rem;
|
||
margin-top: 1rem;
|
||
overflow: visible;
|
||
padding-left: 1rem;
|
||
">
|
||
<p><strong>输入:</strong><span class="example-io" style="
|
||
font-family: Menlo,sans-serif;
|
||
font-size: 0.85rem;
|
||
">word = "leetcoleet", k = 2</span></p>
|
||
|
||
<p><strong>输出:</strong>3</p>
|
||
|
||
<p><strong>解释:</strong>可以执行以下操作获得一个 2 周期字符串。</p>
|
||
|
||
<table border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" height="146" style="border-collapse:collapse; text-align: center; vertical-align: middle;">
|
||
<tbody>
|
||
<tr>
|
||
<th>i</th>
|
||
<th>j</th>
|
||
<th>word</th>
|
||
</tr>
|
||
<tr>
|
||
<td style="padding: 5px 15px;">0</td>
|
||
<td style="padding: 5px 15px;">2</td>
|
||
<td style="padding: 5px 15px;">etetcoleet</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="padding: 5px 15px;">4</td>
|
||
<td style="padding: 5px 15px;">0</td>
|
||
<td style="padding: 5px 15px;">etetetleet</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="padding: 5px 15px;">6</td>
|
||
<td style="padding: 5px 15px;">0</td>
|
||
<td style="padding: 5px 15px;">etetetetet</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= n == word.length <= 10<sup>5</sup></code></li>
|
||
<li><code>1 <= k <= word.length</code></li>
|
||
<li><code>k</code> 能整除 <code>word.length</code> 。</li>
|
||
<li><code>word</code> 仅由小写英文字母组成。</li>
|
||
</ul>
|