赞
踩
设计一个使用单词列表进行初始化的数据结构,单词列表中的单词 互不相同 。 如果给出一个单词,请判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于你构建的字典中。
实现 MagicDictionary
类:
MagicDictionary()
初始化对象void buildDict(String[] dictionary)
使用字符串数组 dictionary
设定该数据结构,dictionary
中的字符串互不相同bool search(String searchWord)
给定一个字符串 searchWord
,判定能否只将字符串中 一个 字母换成另一个字母,使得所形成的新字符串能够与字典中的任一字符串匹配。如果可以,返回 true
;否则,返回 false
。示例:
输入
["MagicDictionary", "buildDict", "search", "search", "search", "search"]
[[], [["hello", "leetcode"]], ["hello"], ["hhllo"], ["hell"], ["leetcoded"]]
输出
[null, null, false, true, false, false]
解释
MagicDictionary magicDictionary = new MagicDictionary();
magicDictionary.buildDict(["hello", "leetcode"]);
magicDictionary.search("hello"); // 返回 False
magicDictionary.search("hhllo"); // 将第二个 'h' 替换为 'e' 可以匹配 "hello" ,所以返回 True
magicDictionary.search("hell"); // 返回 False
magicDictionary.search("leetcoded"); // 返回 False
提示:
1 <= dictionary.length <= 100
1 <= dictionary[i].length <= 100
dictionary[i]
仅由小写英文字母组成dictionary
中的所有字符串 互不相同1 <= searchWord.length <= 100
searchWord
仅由小写英文字母组成buildDict
仅在 search
之前调用一次100
次 search
先建立一个列表将所有的库存单词存入。
1.用户输入一个Search单词,我们需要针对每一个库存单词进行识别
2.对于每一次单词识别,单词长度不一样的直接跳过
3.接下来逐个字母扫描,如果有不一样的字母diffWords计数+1
4.如果扫描完一个库存单词后diffWords=1就为目标单词,返回True。
5.如果diffWords!=1证明有两个及以上字母不同,则继续扫描下一个单词
6.如果全部扫描完后,不满足True的条件的即为False
Python代码具体实现:
- class MagicDictionary(object):
-
- def __init__(self):
- self.WordList = []
-
- def buildDict(self, dictionary):
- for word in dictionary:
- self.WordList.append(word)
-
- def search(self, searchWord):
- for word in self.WordList:
- if len(word) != len(searchWord): continue
- diffWords = 0
- for i in range(len(word)):
- if word[i] != searchWord[i]:
- if diffWords == 0:
- diffWords += 1
- else:
- diffWords += 1
- break
- if diffWords == 1: return True
- return False
-
-
- if __name__ == '__main__':
- obj = MagicDictionary()
- obj.buildDict(["hello","hillo", "hivee", "leetcode"])
- param_2 = obj.search("hello")
- param_3 = obj.search("hallo")
- param_4 = obj.search("hallo0")
- param_5 = obj.search("leescode")
- param_6 = obj.search("hivea")
- param_7 = obj.search("judge")
- param_8 = obj.search("aaaaa")
- print(param_2)
- print(param_3)
- print(param_4)
- print(param_5)
- print(param_6)
- print(param_7)
- print(param_8)
-
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
测试结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。