狗的元音字母(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来判断即可
本文内容由小姬整理编辑!