mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
58 lines
4.3 KiB
HTML
58 lines
4.3 KiB
HTML
<p>给你两个字符串数组 <code>wordsContainer</code> 和 <code>wordsQuery</code> 。</p>
|
||
|
||
<p>对于每个 <code>wordsQuery[i]</code> ,你需要从 <code>wordsContainer</code> 中找到一个与 <code>wordsQuery[i]</code> 有 <strong>最长公共后缀</strong> 的字符串。如果 <code>wordsContainer</code> 中有两个或者更多字符串有最长公共后缀,那么答案为长度<strong> 最短</strong> 的。如果有超过两个字符串有 <strong>相同</strong> 最短长度,那么答案为它们在 <code>wordsContainer</code> 中出现 <strong>更早</strong> 的一个。</p>
|
||
|
||
<p>请你返回一个整数数组<em> </em><code>ans</code> ,其中<em> </em><code>ans[i]</code>是<em> </em><code>wordsContainer</code>中与 <code>wordsQuery[i]</code> 有 <strong>最长公共后缀</strong> 字符串的下标。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>wordsContainer = ["abcd","bcd","xbcd"], wordsQuery = ["cd","bcd","xyz"]</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>[1,1,1]</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>我们分别来看每一个 <code>wordsQuery[i]</code> :</p>
|
||
|
||
<ul>
|
||
<li>对于 <code>wordsQuery[0] = "cd"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"cd"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 1 的字符串,因为它的长度为 3 ,是最短的字符串。</li>
|
||
<li>对于 <code>wordsQuery[1] = "bcd"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"bcd"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 1 的字符串,因为它的长度为 3 ,是最短的字符串。</li>
|
||
<li>对于 <code>wordsQuery[2] = "xyz"</code> ,<code>wordsContainer</code> 中没有字符串跟它有公共后缀,所以最长公共后缀为 <code>""</code> ,下标为 0 ,1 和 2 的字符串都得到这一公共后缀。这些字符串中, 答案是下标为 1 的字符串,因为它的长度为 3 ,是最短的字符串。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><span class="example-io"><b>输入:</b>wordsContainer = ["abcdefgh","poiuygh","ghghgh"], wordsQuery = ["gh","acbfgh","acbfegh"]</span></p>
|
||
|
||
<p><span class="example-io"><b>输出:</b>[2,0,2]</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>我们分别来看每一个 <code>wordsQuery[i]</code> :</p>
|
||
|
||
<ul>
|
||
<li>对于 <code>wordsQuery[0] = "gh"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"gh"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 2 的字符串,因为它的长度为 6 ,是最短的字符串。</li>
|
||
<li>对于 <code>wordsQuery[1] = "acbfgh"</code> ,只有下标为 0 的字符串有最长公共后缀 <code>"fgh"</code> 。所以尽管下标为 2 的字符串是最短的字符串,但答案是 0 。</li>
|
||
<li>对于 <code>wordsQuery[2] = "acbfegh"</code> ,<code>wordsContainer</code> 中有最长公共后缀 <code>"gh"</code> 的字符串下标分别为 0 ,1 和 2 。这些字符串中,答案是下标为 2 的字符串,因为它的长度为 6 ,是最短的字符串。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= wordsContainer.length, wordsQuery.length <= 10<sup>4</sup></code></li>
|
||
<li><code>1 <= wordsContainer[i].length <= 5 * 10<sup>3</sup></code></li>
|
||
<li><code>1 <= wordsQuery[i].length <= 5 * 10<sup>3</sup></code></li>
|
||
<li><code>wordsContainer[i]</code> 只包含小写英文字母。</li>
|
||
<li><code>wordsQuery[i]</code> 只包含小写英文字母。</li>
|
||
<li><code>wordsContainer[i].length</code> 的和至多为 <code>5 * 10<sup>5</sup></code> 。</li>
|
||
<li><code>wordsQuery[i].length</code> 的和至多为 <code>5 * 10<sup>5</sup></code> 。</li>
|
||
</ul>
|