mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
36 lines
2.3 KiB
HTML
36 lines
2.3 KiB
HTML
<p>给你一个小写英文字母组成的字符串 <code>s</code> 和一个二维整数数组 <code>shifts</code> ,其中 <code>shifts[i] = [start<sub>i</sub>, end<sub>i</sub>, direction<sub>i</sub>]</code> 。对于每个 <code>i</code> ,将 <code>s</code> 中从下标 <code>start<sub>i</sub></code> 到下标 <code>end<sub>i</sub></code> (两者都包含)所有字符都进行移位运算,如果 <code>direction<sub>i</sub> = 1</code> 将字符向后移位,如果 <code>direction<sub>i</sub> = 0</code> 将字符向前移位。</p>
|
||
|
||
<p>将一个字符 <strong>向后</strong> 移位的意思是将这个字符用字母表中 <strong>下一个</strong> 字母替换(字母表视为环绕的,所以 <code>'z'</code> 变成 <code>'a'</code>)。类似的,将一个字符 <strong>向前</strong> 移位的意思是将这个字符用字母表中 <strong>前一个</strong> 字母替换(字母表是环绕的,所以 <code>'a'</code> 变成 <code>'z'</code> )。</p>
|
||
|
||
<p>请你返回对 <code>s</code> 进行所有移位操作以后得到的最终字符串。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre><b>输入:</b>s = "abc", shifts = [[0,1,0],[1,2,1],[0,2,1]]
|
||
<b>输出:</b>"ace"
|
||
<b>解释:</b>首先,将下标从 0 到 1 的字母向前移位,得到 s = "zac" 。
|
||
然后,将下标从 1 到 2 的字母向后移位,得到 s = "zbd" 。
|
||
最后,将下标从 0 到 2 的字符向后移位,得到 s = "ace" 。</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre><b>输入:</b>s = "dztz", shifts = [[0,0,0],[1,1,1]]
|
||
<b>输出:</b>"catz"
|
||
<b>解释:</b>首先,将下标从 0 到 0 的字母向前移位,得到 s = "cztz" 。
|
||
最后,将下标从 1 到 1 的字符向后移位,得到 s = "catz" 。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= s.length, shifts.length <= 5 * 10<sup>4</sup></code></li>
|
||
<li><code>shifts[i].length == 3</code></li>
|
||
<li><code>0 <= start<sub>i</sub> <= end<sub>i</sub> < s.length</code></li>
|
||
<li><code>0 <= direction<sub>i</sub> <= 1</code></li>
|
||
<li><code>s</code> 只包含小写英文字母。</li>
|
||
</ul>
|