mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
60 lines
3.4 KiB
HTML
60 lines
3.4 KiB
HTML
<p>给你两个长度相同的字符串 <code>s</code> 和 <code>t</code> ,以及两个整数数组 <code>nextCost</code> 和 <code>previousCost</code> 。</p>
|
||
|
||
<p>一次操作中,你可以选择 <code>s</code> 中的一个下标 <code>i</code> ,执行以下操作 <strong>之一</strong> :</p>
|
||
|
||
<ul>
|
||
<li>将 <code>s[i]</code> 切换为字母表中的下一个字母,如果 <code>s[i] == 'z'</code> ,切换后得到 <code>'a'</code> 。操作的代价为 <code>nextCost[j]</code> ,其中 <code>j</code> 表示 <code>s[i]</code> 在字母表中的下标。</li>
|
||
<li>将 <code>s[i]</code> 切换为字母表中的上一个字母,如果 <code>s[i] == 'a'</code> ,切换后得到 <code>'z'</code> 。操作的代价为 <code>previousCost[j]</code> ,其中 <code>j</code> 是 <code>s[i]</code> 在字母表中的下标。</li>
|
||
</ul>
|
||
|
||
<p><strong>切换距离</strong> 指的是将字符串 <code>s</code> 变为字符串 <code>t</code> 的 <strong>最少</strong> 操作代价总和。</p>
|
||
|
||
<p>请你返回从 <code>s</code> 到 <code>t</code> 的 <strong>切换距离</strong> 。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>s = "abab", t = "baba", nextCost = [100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], previousCost = [1,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>2</span></p>
|
||
|
||
<p><b>解释:</b></p>
|
||
|
||
<ul>
|
||
<li>选择下标 <code>i = 0</code> 并将 <code>s[0]</code> 向前切换 25 次,总代价为 1 。</li>
|
||
<li>选择下标 <code>i = 1</code> 并将 <code>s[1]</code> 向后切换 25 次,总代价为 0 。</li>
|
||
<li>选择下标 <code>i = 2</code> 并将 <code>s[2]</code> 向前切换 25 次,总代价为 1 。</li>
|
||
<li>选择下标 <code>i = 3</code> 并将 <code>s[3]</code> 向后切换 25 次,总代价为 0 。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>s = "leet", t = "code", nextCost = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], previousCost = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>31</span></p>
|
||
|
||
<p><b>解释:</b></p>
|
||
|
||
<ul>
|
||
<li>选择下标 <code>i = 0</code> 并将 <code>s[0]</code> 向前切换 9 次,总代价为 9 。</li>
|
||
<li>选择下标 <code>i = 1</code> 并将 <code>s[1]</code> 向后切换 10 次,总代价为 10 。</li>
|
||
<li>选择下标 <code>i = 2</code> 并将 <code>s[2]</code> 向前切换 1 次,总代价为 1 。</li>
|
||
<li>选择下标 <code>i = 3</code> 并将 <code>s[3]</code> 向后切换 11 次,总代价为 11 。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= s.length == t.length <= 10<sup>5</sup></code></li>
|
||
<li><code>s</code> 和 <code>t</code> 都只包含小写英文字母。</li>
|
||
<li><code>nextCost.length == previousCost.length == 26</code></li>
|
||
<li><code>0 <= nextCost[i], previousCost[i] <= 10<sup>9</sup></code></li>
|
||
</ul>
|