搜索
写经验 领红包
 > 美容

狗的元音字母(dog的元音字母是什么)

导语:leetcode966_go_元音拼写检查器

题目

在给定单词列表 wordlist 的情况下,我们希望实现一个拼写检查器,将查询单词转换为正确的单词。

对于给定的查询单词 query,拼写检查器将会处理两类拼写错误:

大小写:如果查询匹配单词列表中的某个单词(不区分大小写),则返回的正确单词与单词列表中的大小写相同。

例如:wordlist = [&34;], query = &34;: correct = &34;

例如:wordlist = [&34;], query = &34;: correct = &34;

例如:wordlist = [&34;], query = &34;: correct = &34;

元音错误:如果在将查询单词中的元音(‘a’、‘e’、‘i’、‘o’、‘u’)分别替换为任何元音后,

能与单词列表中的单词匹配(不区分大小写),则返回的正确单词与单词列表中的匹配项大小写相同。

例如:wordlist = [&34;], query = &34;: correct = &34;

例如:wordlist = [&34;], query = &34;: correct = &34; (无匹配项)

例如:wordlist = [&34;], query = &34;: correct = &34; (无匹配项)

此外,拼写检查器还按照以下优先级规则操作:

当查询完全匹配单词列表中的某个单词(区分大小写)时,应返回相同的单词。

当查询匹配到大小写问题的单词时,您应该返回单词列表中的第一个这样的匹配项。

当查询匹配到元音错误的单词时,您应该返回单词列表中的第一个这样的匹配项。

如果该查询在单词列表中没有匹配项,则应返回空字符串。

给出一些查询 queries,返回一个单词列表 answer,

其中 answer[i] 是由查询 query = queries[i] 得到的正确单词。

示例:输入:wordlist = [&34;,&34;,&34;,&34;],

queries = [&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;]

输出:[&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;,&34;]

提示:1 <= wordlist.length <= 5000

1 <= queries.length <= 5000

1 <= wordlist[i].length <= 7

1 <= queries[i].length <= 7

wordlist 和 queries 中的所有字符串仅由英文字母组成。

解题思路分析

1、哈希辅助;时间复杂度O(n),空间复杂度O(n)

func spellchecker(wordlist []string, queries []string) []string {m := make(map[string]bool)mLower := make(map[string]string)mVowel := make(map[string]string)for i := 0; i < len(wordlist); i++ {m[wordlist[i]] = truelowerStr := strings.ToLower(wordlist[i])if _, ok := mLower[lowerStr]; ok == false {mLower[lowerStr] = wordlist[i]}vowelStr := changeVowel(lowerStr)if _, ok := mVowel[vowelStr]; ok == false {mVowel[vowelStr] = wordlist[i]}}for i := 0; i < len(queries); i++ {if m[queries[i]] == true {continue}lowerStr := strings.ToLower(queries[i])if v, ok := mLower[lowerStr]; ok {queries[i] = vcontinue}vowelStr := changeVowel(lowerStr)if v, ok := mVowel[vowelStr]; ok {queries[i] = vcontinue}queries[i] = &34;}return queries}func changeVowel(str string) string {str = strings.ReplaceAll(str, &34;, &34;)str = strings.ReplaceAll(str, &34;, &34;)str = strings.ReplaceAll(str, &34;, &34;)str = strings.ReplaceAll(str, &34;, &34;)str = strings.ReplaceAll(str, &34;, &34;)return str
总结

Medium题目,借助3个map来判断即可

本文内容由小姬整理编辑!