1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/字符串转换 [string-transformation].html

52 lines
2.1 KiB
HTML
Raw Normal View History

2023-09-20 00:01:18 +08:00
<p>给你两个长度都为 <code>n</code>&nbsp;的字符串&nbsp;<code>s</code>&nbsp;<code>t</code>&nbsp;。你可以对字符串 <code>s</code>&nbsp;执行以下操作:</p>
<ul>
<li><code>s</code>&nbsp;长度为 <code>l</code>&nbsp;<code>0 &lt; l &lt; n</code>)的 <strong>后缀字符串</strong>&nbsp;删除,并将它添加在 <code>s</code>&nbsp;的开头。<br />
比方说,<code>s = 'abcd'</code>&nbsp;,那么一次操作中,你可以删除后缀&nbsp;<code>'cd'</code>&nbsp;,并将它添加到&nbsp;<code>s</code>&nbsp;的开头,得到&nbsp;<code>s = 'cdab'</code>&nbsp;</li>
</ul>
<p>给你一个整数&nbsp;<code>k</code>&nbsp;,请你返回&nbsp;<strong>恰好</strong> <code>k</code>&nbsp;次操作将<em>&nbsp;</em><code>s</code> 变为<em>&nbsp;</em><code>t</code>&nbsp;的方案数。</p>
<p>由于答案可能很大,返回答案对&nbsp;<code>10<sup>9</sup> + 7</code>&nbsp;<strong>取余</strong>&nbsp;后的结果。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<pre>
<b>输入:</b>s = "abcd", t = "cdab", k = 2
<b>输出:</b>2
<b>解释:</b>
第一种方案:
第一次操作,选择 index = 3 开始的后缀,得到 s = "dabc" 。
第二次操作,选择 index = 3 开始的后缀,得到 s = "cdab" 。
第二种方案:
第一次操作,选择 index = 1 开始的后缀,得到 s = "bcda" 。
第二次操作,选择 index = 1 开始的后缀,得到 s = "cdab" 。
</pre>
<p><strong class="example">示例 2</strong></p>
<pre>
<b>输入:</b>s = "ababab", t = "ababab", k = 1
<b>输出:</b>2
<b>解释:</b>
第一种方案:
选择 index = 2 开始的后缀,得到 s = "ababab" 。
第二种方案:
选择 index = 4 开始的后缀,得到 s = "ababab" 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= s.length &lt;= 5 * 10<sup>5</sup></code></li>
<li><code>1 &lt;= k &lt;= 10<sup>15</sup></code></li>
<li><code>s.length == t.length</code></li>
<li><code>s</code>&nbsp;<code>t</code>&nbsp;都只包含小写英文字母。</li>
</ul>