LWC 49:676. Implement Magic Dictionary
来源:互联网 发布:蒙古灭宋 知乎 编辑:程序博客网 时间:2024/06/05 20:40
LWC 49:676. Implement Magic Dictionary
传送门:676. Implement Magic Dictionary
Problem:
Implement a magic directory with buildDict, and search methods.
For the method buildDict, you’ll be given a list of non-repetitive words to build a dictionary.
For the method search, you’ll be given a word, and judge whether if you modify exactly one character into another character in this word, the modified word is in the dictionary you just built.
Example 1:
Input: buildDict([“hello”, “leetcode”]), Output: Null
Input: search(“hello”), Output: False
Input: search(“hhllo”), Output: True
Input: search(“hell”), Output: False
Input: search(“leetcoded”), Output: False
Note:
- You may assume that all the inputs are consist of lowercase letters a-z.
- For contest purpose, the test data is rather small by now. You could think about highly efficient algorithm after the contest.
- Please remember to RESET your class variables declared in class MagicDictionary, as static/class variables are persisted across multiple test cases. Please see here for more details.
无脑做法:
用MAP做长度的一个映射,把长度相同的放入一个LIST中,接着判断LIST中是否存在编辑距离为1的单词。
代码如下:
class MagicDictionary { /** Initialize your data structure here. */ Map<Integer, List<String>> map; public MagicDictionary() { map = new HashMap<>(); } /** Build a dictionary through a list of words */ public void buildDict(String[] dict) { for (String word : dict) { map.computeIfAbsent(word.length(), k -> new ArrayList<>()).add(word); } } /** Returns if there is any word in the trie that equals to the given word after modifying exactly one character */ public boolean search(String word) { int len = word.length(); if (!map.containsKey(len)) return false; for (String dict : map.get(word.length())) { if (valid(dict, word)) return true; } return false; } public boolean valid(String word, String dict) { int n = word.length(); int j = 0; for (int i = 0; i < n; ++i) { if (word.charAt(i) == dict.charAt(i)) j++; } return j == n - 1; }}
阅读全文
0 0
- LWC 49:676. Implement Magic Dictionary
- 676. Implement Magic Dictionary
- 676. Implement Magic Dictionary
- 676. Implement Magic Dictionary
- Leetcode 676. Implement Magic Dictionary
- leetcode 676. Implement Magic Dictionary
- leetcode 676. Implement Magic Dictionary
- leetcode 676. Implement Magic Dictionary
- LeetCode.676 Implement Magic Dictionary
- Implement Magic Dictionary问题及解法
- Hash Table -- Leetcode problem676. Implement Magic Dictionary
- LWC 57:720. Longest Word in Dictionary
- ios safe dictionary simple implement
- LWC 49:674. Longest Continuous Increasing Subsequence
- LWC 49:675. Cut Off Trees for Golf Event
- LWC 49:673. Number of Longest Increasing Subsequence
- 【magic】
- magic
- 切换选项卡
- git工作方式简介
- 百练OJ:2764:数根
- 异常处理
- 83. Remove Duplicates from Sorted List
- LWC 49:676. Implement Magic Dictionary
- View的事件分发机制源码分析
- maven创建项目后出现“One or more constraints have not been satisfied、Dynamic Web Module 3.0 requires ”错误解决办法
- Java之CyclicBarrier使用
- 搭建hadoop伪分布式
- 短信接口(阿里大于)
- 多表查询练习
- Java之CountDownLatch使用
- Linux 上交换分区的简单操作