mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
55 lines
2.8 KiB
HTML
55 lines
2.8 KiB
HTML
<p>给你一个长度为 <code>n</code> 的字符串 <code>s</code> 和一个整数 <code>k</code> ,<code>n</code> 是 <code>k</code> 的 <strong>倍数</strong> 。你的任务是将字符串 <code>s</code> 哈希为一个长度为 <code>n / k</code> 的新字符串 <code>result</code> 。</p>
|
||
|
||
<p>首先,将 <code>s</code> 分割成 <code>n / k</code> 个 <strong><span data-keyword="substring-nonempty">子字符串</span></strong> ,每个子字符串的长度都为 <code>k</code> 。然后,将 <code>result</code> 初始化为一个 <strong>空</strong> 字符串。</p>
|
||
|
||
<p>我们依次从前往后处理每一个 <strong>子字符串</strong> :</p>
|
||
|
||
<ul>
|
||
<li>一个字符的 <strong>哈希值</strong> 是它在 <strong>字母表</strong> 中的下标(也就是 <code>'a' →<!-- notionvc: d3f8e4c2-23cd-41ad-a14b-101dfe4c5aba --> 0</code> ,<code>'b' →<!-- notionvc: d3f8e4c2-23cd-41ad-a14b-101dfe4c5aba --> 1</code> ,... ,<code>'z' →<!-- notionvc: d3f8e4c2-23cd-41ad-a14b-101dfe4c5aba --> 25</code>)。</li>
|
||
<li>将子字符串中字幕的 <strong>哈希值</strong> 求和。</li>
|
||
<li>将和对 26 取余,将结果记为 <code>hashedChar</code> 。</li>
|
||
<li>找到小写字母表中 <code>hashedChar</code> 对应的字符。</li>
|
||
<li>将该字符添加到 <code>result</code> 的末尾。</li>
|
||
</ul>
|
||
|
||
<p>返回 <code>result</code> 。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>s = "abcd", k = 2</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>"bf"</span></p>
|
||
|
||
<p><b>解释:</b></p>
|
||
|
||
<p>第一个字符串为 <code>"ab"</code> ,<code>0 + 1 = 1</code> ,<code>1 % 26 = 1</code> ,<code>result[0] = 'b'</code> 。</p>
|
||
|
||
<p>第二个字符串为: <code>"cd"</code> ,<code>2 + 3 = 5</code> ,<code>5 % 26 = 5</code> ,<code>result[1] = 'f'</code> 。</p>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>s = "mxz", k = 3</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>"i"</span></p>
|
||
|
||
<p><b>解释:</b></p>
|
||
|
||
<p>唯一的子字符串为 <code>"mxz"</code> ,<code>12 + 23 + 25 = 60</code> ,<code>60 % 26 = 8</code> ,<code>result[0] = 'i'</code> 。</p>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= k <= 100</code></li>
|
||
<li><code>k <= s.length <= 1000</code></li>
|
||
<li><code>s.length</code> 能被 <code>k</code> 整除。</li>
|
||
<li><code>s</code> 只含有小写英文字母。</li>
|
||
</ul>
|