|
6 | 6 |
|
7 | 7 | <!-- 这里写题目描述 -->
|
8 | 8 |
|
9 |
| -<p>这是一个 <strong><em>交互式问题 </em></strong>。</p> |
| 9 | +<p>给你一个由 <strong>不同</strong> 字符串组成的单词列表 <code>words</code> ,其中 <code>words[i]</code> 长度均为 <code>6</code> 。<code>words</code> 中的一个单词将被选作秘密单词 <code>secret</code> 。</p> |
10 | 10 |
|
11 |
| -<p>我们给出了一个由一些 <strong>不同的</strong> 单词组成的列表 <code>wordlist</code> ,对于每个 <code>wordlist[i]</code> 长度均为 <code>6</code> ,这个列表中的一个单词将被选作 <code>secret</code> 。</p> |
| 11 | +<p>另给你一个辅助对象 <code>Master</code> ,你可以调用 <code>Master.guess(word)</code> 来猜单词,其中参数 <code>word</code> 长度为 6 且必须是 <code>words</code> 中的字符串。</p> |
12 | 12 |
|
13 |
| -<p>你可以调用 <code>Master.guess(word)</code> 来猜单词。你所猜的单词应当是存在于原列表并且由 <code>6</code> 个小写字母组成的类型 <code>string</code> 。</p> |
| 13 | +<p><code>Master.guess(word)</code> 将会返回如下结果:</p> |
14 | 14 |
|
15 |
| -<p>此函数将会返回一个 <code>integer</code> ,表示你的猜测与<strong>秘密单词</strong> <code>secret</code> 的准确匹配(值和位置同时匹配)的数目。此外,如果你的猜测不在给定的单词列表中,它将返回 <code>-1</code>。</p> |
| 15 | +<ul> |
| 16 | + <li>如果 <code>word</code> 不是 <code>words</code> 中的字符串,返回 <code>-1</code> ,或者</li> |
| 17 | + <li>一个整数,表示你所猜测的单词 <code>word</code> 与 <strong>秘密单词</strong> <code>secret</code> 的准确匹配(值和位置同时匹配)的数目。</li> |
| 18 | +</ul> |
16 | 19 |
|
17 |
| -<p>对于每个测试用例,你有 <code>10</code> 次机会来猜出这个单词。当所有调用都结束时,如果您对 <code>Master.guess</code> 的调用在 <code>10</code> 次以内,并且至少有一次猜到 <code>secret</code> ,将判定为通过该用例。</p> |
| 20 | +<p>每组测试用例都会包含一个参数 <code>allowedGuesses</code> ,其中 <code>allowedGuesses</code> 是你可以调用 <code>Master.guess(word)</code> 的最大次数。</p> |
18 | 21 |
|
19 |
| -<p> </p> |
| 22 | +<p>对于每组测试用例,在不超过允许猜测的次数的前提下,你应该调用 <code>Master.guess</code> 来猜出秘密单词。最终,你将会得到以下结果:</p> |
| 23 | + |
| 24 | +<ul> |
| 25 | + <li>如果你调用 <code>Master.guess</code> 的次数大于 <code>allowedGuesses</code> 所限定的次数或者你没有用 <code>Master.guess</code> 猜到秘密单词,则得到 <strong><code>"Either you took too many guesses, or you did not find the secret word."</code> 。</strong></li> |
| 26 | + <li>如果你调用 <code>Master.guess</code> 猜到秘密单词,且调用 <code>Master.guess</code> 的次数小于或等于 <code>allowedGuesses</code> ,则得到 <strong><code>"You guessed the secret word correctly."</code> 。</strong></li> |
| 27 | +</ul> |
20 | 28 |
|
21 |
| -<p><strong>示例 1:</strong></p> |
| 29 | +<p>生成的测试用例保证你可以利用某种合理的策略(而不是暴力)猜到秘密单词。</p> |
| 30 | + |
| 31 | + |
| 32 | +<p><strong>示例 1:</strong></p> |
22 | 33 |
|
23 | 34 | <pre>
|
24 |
| -<strong>输入:</strong> secret = "acckzz", wordlist = ["acckzz","ccbazz","eiowzz","abcczz"] |
25 |
| -<strong>输出:</strong> You guessed the secret word correctly. |
26 |
| -<strong>解释:</strong> |
27 |
| -<code>master.guess("aaaaaa")</code> 返回 -1, 因为 <code>"aaaaaa"</code> 不在 wordlist 中. |
28 |
| -<code>master.guess("acckzz") 返回</code> 6, 因为 <code>"acckzz"</code> 就是<strong>秘密</strong>,6个字母完全匹配。 |
29 |
| -<code>master.guess("ccbazz")</code> 返回 3, 因为<code> "ccbazz"</code> 有 3 个匹配项。 |
30 |
| -<code>master.guess("eiowzz")</code> 返回 2, 因为 <code>"eiowzz"</code> 有 2 个匹配项。 |
31 |
| -<code>master.guess("abcczz")</code> 返回 4, 因为 <code>"abcczz"</code> 有 4 个匹配项。 |
32 |
| -我们调用了 5 次master.guess,其中一次猜到了<strong>秘密</strong>,所以我们通过了这个测试用例。 |
| 35 | +<strong>输入:</strong>secret = "acckzz", words = ["acckzz","ccbazz","eiowzz","abcczz"], allowedGuesses = 10 |
| 36 | +<strong>输出:</strong>You guessed the secret word correctly. |
| 37 | +<strong>解释:</strong> |
| 38 | +master.guess("aaaaaa") 返回 -1 ,因为 "aaaaaa" 不在 words 中。 |
| 39 | +master.guess("acckzz") 返回 6 ,因为 "acckzz" 是秘密单词 secret ,共有 6 个字母匹配。 |
| 40 | +master.guess("ccbazz") 返回 3 ,因为 "ccbazz" 共有 3 个字母匹配。 |
| 41 | +master.guess("eiowzz") 返回 2 ,因为 "eiowzz" 共有 2 个字母匹配。 |
| 42 | +master.guess("abcczz") 返回 4 ,因为 "abcczz" 共有 4 个字母匹配。 |
| 43 | +一共调用 5 次 master.guess ,其中一个为秘密单词,所以通过测试用例。 |
33 | 44 | </pre>
|
34 | 45 |
|
35 |
| -<p><strong> 示例 2:</strong></p> |
| 46 | +<p><strong>示例 2:</strong></p> |
36 | 47 |
|
37 | 48 | <pre>
|
38 |
| -<strong>输入:</strong> secret = "hamada", wordlist = ["hamada","khaled"], numguesses = 10 |
39 |
| -<strong>输出:</strong> You guessed the secret word correctly. |
40 |
| -</pre> |
| 49 | +<strong>输入:</strong>secret = "hamada", words = ["hamada","khaled"], allowedGuesses = 10 |
| 50 | +<strong>输出:</strong>You guessed the secret word correctly. |
| 51 | +<strong>解释:</strong>共有 2 个单词,且其中一个为秘密单词,可以通过测试用例。</pre> |
41 | 52 |
|
42 | 53 | <p> </p>
|
43 | 54 |
|
44 |
| -<p><strong>提示:</strong></p> |
| 55 | +<p><strong>提示:</strong></p> |
45 | 56 |
|
46 | 57 | <ul>
|
47 |
| - <li><code>1 <= wordlist.length <= 100</code></li> |
48 |
| - <li><code>wordlist[i].length == 6</code></li> |
49 |
| - <li><code>wordlist[i]</code> 只包含小写英文字母</li> |
50 |
| - <li><code>wordlist</code> 中所有字符串都 <strong>不同</strong></li> |
51 |
| - <li><code>secret</code> 在 <code>wordlist</code> 中</li> |
52 |
| - <li><code>numguesses == 10</code></li> |
| 58 | + <li><code>1 <= words.length <= 100</code></li> |
| 59 | + <li><code>words[i].length == 6</code></li> |
| 60 | + <li><code>words[i]</code> 仅由小写英文字母组成</li> |
| 61 | + <li><code>words</code> 中所有字符串 <strong>互不相同</strong></li> |
| 62 | + <li><code>secret</code> 存在于 <code>words</code> 中</li> |
| 63 | + <li><code>10 <= allowedGuesses <= 30</code></li> |
53 | 64 | </ul>
|
54 | 65 |
|
55 | 66 | ## 解法
|
|
0 commit comments