|
24842 | 24842 | <ul class="md-nav__list">
|
24843 | 24843 |
|
24844 | 24844 | <li class="md-nav__item">
|
24845 |
| - <a href="#solution-1" class="md-nav__link"> |
| 24845 | + <a href="#solution-1-suffix-sum" class="md-nav__link"> |
24846 | 24846 | <span class="md-ellipsis">
|
24847 |
| - Solution 1 |
| 24847 | + Solution 1: Suffix Sum |
24848 | 24848 | </span>
|
24849 | 24849 | </a>
|
24850 | 24850 |
|
@@ -78080,8 +78080,10 @@ <h2 id="description">Description</h2>
|
78080 | 78080 | <h2 id="solutions">Solutions</h2>
|
78081 | 78081 | <!-- solution:start -->
|
78082 | 78082 |
|
78083 |
| -<h3 id="solution-1">Solution 1</h3> |
78084 |
| -<div class="tabbed-set tabbed-alternate" data-tabs="1:5"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Python3</label><label for="__tabbed_1_3">Java</label><label for="__tabbed_1_4">C++</label><label for="__tabbed_1_5">Go</label></div> |
| 78083 | +<h3 id="solution-1-suffix-sum">Solution 1: Suffix Sum</h3> |
| 78084 | +<p>For each character in the string $s$, we need to calculate its final shift amount, which is the sum of $\textit{shifts}[i]$, $\textit{shifts}[i + 1]$, $\textit{shifts}[i + 2]$, and so on. We can use the concept of suffix sum, traversing $\textit{shifts}$ from back to front, calculating the final shift amount for each character, and then taking modulo $26$ to get the final character.</p> |
| 78085 | +<p>The time complexity is $O(n)$, where $n$ is the length of the string $s$. Ignoring the space consumption of the answer, the space complexity is $O(1)$.</p> |
| 78086 | +<div class="tabbed-set tabbed-alternate" data-tabs="1:4"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label></div> |
78085 | 78087 | <div class="tabbed-content">
|
78086 | 78088 | <div class="tabbed-block">
|
78087 | 78089 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
|
@@ -78116,44 +78118,6 @@ <h3 id="solution-1">Solution 1</h3>
|
78116 | 78118 | <span class="normal">10</span>
|
78117 | 78119 | <span class="normal">11</span>
|
78118 | 78120 | <span class="normal">12</span>
|
78119 |
| -<span class="normal">13</span> |
78120 |
| -<span class="normal">14</span> |
78121 |
| -<span class="normal">15</span> |
78122 |
| -<span class="normal">16</span> |
78123 |
| -<span class="normal">17</span> |
78124 |
| -<span class="normal">18</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Solution</span><span class="p">:</span> |
78125 |
| - <span class="k">def</span> <span class="nf">shiftingLetters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">shifts</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">int</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> |
78126 |
| - <span class="n">n</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> |
78127 |
| - <span class="n">d</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> |
78128 |
| - <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">c</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">s</span><span class="p">):</span> |
78129 |
| - <span class="n">v</span> <span class="o">=</span> <span class="nb">ord</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="o">-</span> <span class="nb">ord</span><span class="p">(</span><span class="s1">'a'</span><span class="p">)</span> |
78130 |
| - <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">v</span> |
78131 |
| - <span class="n">d</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">-=</span> <span class="n">v</span> |
78132 |
| - <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">shifts</span><span class="p">):</span> |
78133 |
| - <span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+=</span> <span class="n">x</span> |
78134 |
| - <span class="n">d</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">-=</span> <span class="n">x</span> |
78135 |
| - <span class="n">t</span> <span class="o">=</span> <span class="mi">0</span> |
78136 |
| - <span class="n">ans</span> <span class="o">=</span> <span class="p">[]</span> |
78137 |
| - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span> |
78138 |
| - <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">%=</span> <span class="mi">26</span> |
78139 |
| - <span class="n">ans</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ascii_lowercase</span><span class="p">[</span><span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">]])</span> |
78140 |
| - <span class="n">d</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">+=</span> <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> |
78141 |
| - <span class="k">return</span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ans</span><span class="p">)</span> |
78142 |
| -</code></pre></div></td></tr></table></div> |
78143 |
| -</div> |
78144 |
| -<div class="tabbed-block"> |
78145 |
| -<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
78146 |
| -<span class="normal"> 2</span> |
78147 |
| -<span class="normal"> 3</span> |
78148 |
| -<span class="normal"> 4</span> |
78149 |
| -<span class="normal"> 5</span> |
78150 |
| -<span class="normal"> 6</span> |
78151 |
| -<span class="normal"> 7</span> |
78152 |
| -<span class="normal"> 8</span> |
78153 |
| -<span class="normal"> 9</span> |
78154 |
| -<span class="normal">10</span> |
78155 |
| -<span class="normal">11</span> |
78156 |
| -<span class="normal">12</span> |
78157 | 78121 | <span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
|
78158 | 78122 | <span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">shiftingLetters</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">s</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">shifts</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
78159 | 78123 | <span class="w"> </span><span class="kt">char</span><span class="o">[]</span><span class="w"> </span><span class="n">cs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="na">toCharArray</span><span class="p">();</span>
|
|
0 commit comments