mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-04 06:51:41 +08:00
185 lines
7.7 KiB
HTML
185 lines
7.7 KiB
HTML
<p>You are given a string <code>s</code> consisting of lowercase English letters and the special characters: <code>'*'</code>, <code>'#'</code>, and <code>'%'</code>.</p>
|
|
|
|
<p>You are also given an integer <code>k</code>.</p>
|
|
|
|
<p>Build a new string <code>result</code> by processing <code>s</code> according to the following rules from left to right:</p>
|
|
|
|
<ul>
|
|
<li>If the letter is a <strong>lowercase</strong> English letter append it to <code>result</code>.</li>
|
|
<li>A <code>'*'</code> <strong>removes</strong> the last character from <code>result</code>, if it exists.</li>
|
|
<li>A <code>'#'</code> <strong>duplicates</strong> the current <code>result</code> and <strong>appends</strong> it to itself.</li>
|
|
<li>A <code>'%'</code> <strong>reverses</strong> the current <code>result</code>.</li>
|
|
</ul>
|
|
|
|
<p>Return the <code>k<sup>th</sup></code> character of the final string <code>result</code>. If <code>k</code> is out of the bounds of <code>result</code>, return <code>'.'</code>.</p>
|
|
|
|
<p> </p>
|
|
<p><strong class="example">Example 1:</strong></p>
|
|
|
|
<div class="example-block">
|
|
<p><strong>Input:</strong> <span class="example-io">s = "a#b%*", k = 1</span></p>
|
|
|
|
<p><strong>Output:</strong> <span class="example-io">"a"</span></p>
|
|
|
|
<p><strong>Explanation:</strong></p>
|
|
|
|
<table style="border: 1px solid black;">
|
|
<thead>
|
|
<tr>
|
|
<th style="border: 1px solid black;"><code>i</code></th>
|
|
<th style="border: 1px solid black;"><code>s[i]</code></th>
|
|
<th style="border: 1px solid black;">Operation</th>
|
|
<th style="border: 1px solid black;">Current <code>result</code></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="border: 1px solid black;">0</td>
|
|
<td style="border: 1px solid black;"><code>'a'</code></td>
|
|
<td style="border: 1px solid black;">Append <code>'a'</code></td>
|
|
<td style="border: 1px solid black;"><code>"a"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">1</td>
|
|
<td style="border: 1px solid black;"><code>'#'</code></td>
|
|
<td style="border: 1px solid black;">Duplicate <code>result</code></td>
|
|
<td style="border: 1px solid black;"><code>"aa"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">2</td>
|
|
<td style="border: 1px solid black;"><code>'b'</code></td>
|
|
<td style="border: 1px solid black;">Append <code>'b'</code></td>
|
|
<td style="border: 1px solid black;"><code>"aab"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">3</td>
|
|
<td style="border: 1px solid black;"><code>'%'</code></td>
|
|
<td style="border: 1px solid black;">Reverse <code>result</code></td>
|
|
<td style="border: 1px solid black;"><code>"baa"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">4</td>
|
|
<td style="border: 1px solid black;"><code>'*'</code></td>
|
|
<td style="border: 1px solid black;">Remove the last character</td>
|
|
<td style="border: 1px solid black;"><code>"ba"</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>The final <code>result</code> is <code>"ba"</code>. The character at index <code>k = 1</code> is <code>'a'</code>.</p>
|
|
</div>
|
|
|
|
<p><strong class="example">Example 2:</strong></p>
|
|
|
|
<div class="example-block">
|
|
<p><strong>Input:</strong> <span class="example-io">s = "cd%#*#", k = 3</span></p>
|
|
|
|
<p><strong>Output:</strong> <span class="example-io">"d"</span></p>
|
|
|
|
<p><strong>Explanation:</strong></p>
|
|
|
|
<table style="border: 1px solid black;">
|
|
<thead>
|
|
<tr>
|
|
<th style="border: 1px solid black;"><code>i</code></th>
|
|
<th style="border: 1px solid black;"><code>s[i]</code></th>
|
|
<th style="border: 1px solid black;">Operation</th>
|
|
<th style="border: 1px solid black;">Current <code>result</code></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="border: 1px solid black;">0</td>
|
|
<td style="border: 1px solid black;"><code>'c'</code></td>
|
|
<td style="border: 1px solid black;">Append <code>'c'</code></td>
|
|
<td style="border: 1px solid black;"><code>"c"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">1</td>
|
|
<td style="border: 1px solid black;"><code>'d'</code></td>
|
|
<td style="border: 1px solid black;">Append <code>'d'</code></td>
|
|
<td style="border: 1px solid black;"><code>"cd"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">2</td>
|
|
<td style="border: 1px solid black;"><code>'%'</code></td>
|
|
<td style="border: 1px solid black;">Reverse <code>result</code></td>
|
|
<td style="border: 1px solid black;"><code>"dc"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">3</td>
|
|
<td style="border: 1px solid black;"><code>'#'</code></td>
|
|
<td style="border: 1px solid black;">Duplicate <code>result</code></td>
|
|
<td style="border: 1px solid black;"><code>"dcdc"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">4</td>
|
|
<td style="border: 1px solid black;"><code>'*'</code></td>
|
|
<td style="border: 1px solid black;">Remove the last character</td>
|
|
<td style="border: 1px solid black;"><code>"dcd"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">5</td>
|
|
<td style="border: 1px solid black;"><code>'#'</code></td>
|
|
<td style="border: 1px solid black;">Duplicate <code>result</code></td>
|
|
<td style="border: 1px solid black;"><code>"dcddcd"</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>The final <code>result</code> is <code>"dcddcd"</code>. The character at index <code>k = 3</code> is <code>'d'</code>.</p>
|
|
</div>
|
|
|
|
<p><strong class="example">Example 3:</strong></p>
|
|
|
|
<div class="example-block">
|
|
<p><strong>Input:</strong> <span class="example-io">s = "z*#", k = 0</span></p>
|
|
|
|
<p><strong>Output:</strong> <span class="example-io">"."</span></p>
|
|
|
|
<p><strong>Explanation:</strong></p>
|
|
|
|
<table style="border: 1px solid black;">
|
|
<thead>
|
|
<tr>
|
|
<th style="border: 1px solid black;"><code>i</code></th>
|
|
<th style="border: 1px solid black;"><code>s[i]</code></th>
|
|
<th style="border: 1px solid black;">Operation</th>
|
|
<th style="border: 1px solid black;">Current <code>result</code></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="border: 1px solid black;">0</td>
|
|
<td style="border: 1px solid black;"><code>'z'</code></td>
|
|
<td style="border: 1px solid black;">Append <code>'z'</code></td>
|
|
<td style="border: 1px solid black;"><code>"z"</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">1</td>
|
|
<td style="border: 1px solid black;"><code>'*'</code></td>
|
|
<td style="border: 1px solid black;">Remove the last character</td>
|
|
<td style="border: 1px solid black;"><code>""</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border: 1px solid black;">2</td>
|
|
<td style="border: 1px solid black;"><code>'#'</code></td>
|
|
<td style="border: 1px solid black;">Duplicate the string</td>
|
|
<td style="border: 1px solid black;"><code>""</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>The final <code>result</code> is <code>""</code>. Since index <code>k = 0</code> is out of bounds, the output is <code>'.'</code>.</p>
|
|
</div>
|
|
|
|
<p> </p>
|
|
<p><strong>Constraints:</strong></p>
|
|
|
|
<ul>
|
|
<li><code>1 <= s.length <= 10<sup>5</sup></code></li>
|
|
<li><code>s</code> consists of only lowercase English letters and special characters <code>'*'</code>, <code>'#'</code>, and <code>'%'</code>.</li>
|
|
<li><code>0 <= k <= 10<sup>15</sup></code></li>
|
|
<li>The length of <code>result</code> after processing <code>s</code> will not exceed <code>10<sup>15</sup></code>.</li>
|
|
</ul>
|