leetcode-211-添加与搜索单词-数据结构设计

题目描述:

方法一:

class WordDictionary:

    def __init__(self):
        """
        Initialize your data structure here.
        """
        #from collections import defaultdict
        self.lookup = {}

    def addWord(self, word: str) -> None:
        """
        Adds a word into the data structure.
        """
        tree = self.lookup
        for a in word:
            if a not in tree:
                tree[a] = {}
            tree = tree[a]
        tree["#"] = {}

    def search(self, word: str) -> bool:
        """
        Returns if the word is in the data structure. A word could contain the dot character ‘.‘ to represent any one letter.
        """
        def helper(word, tree):
            if not word:
                if "#" in tree:
                    return True
                return False
            if word[0] == ".":
                for t in tree:
                    if helper(word[1:], tree[t]):
                        return True
            elif word[0] in tree:
                if helper(word[1:], tree[word[0]]):
                    return True
            return False

        return helper(word,self.lookup)

# Your WordDictionary object will be instantiated and called as such:
# obj = WordDictionary()
# obj.addWord(word)
# param_2 = obj.search(word)

原文地址:https://www.cnblogs.com/oldby/p/11617753.html

时间: 2024-10-11 01:02:24

leetcode-211-添加与搜索单词-数据结构设计的相关文章

leetcode 211. 添加与搜索单词 - 数据结构设计 解题报告

设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z . . 可以表示任何一个字母. 示例: addWord("bad") addWord("dad") addWord("mad") search("pad") -> false search("bad"

[LeetCode] 211. Add and Search Word - Data structure design 添加和查找单词-数据结构设计

Design a data structure that supports the following two operations: void addWord(word) bool search(word) search(word) can search a literal word or a regular expression string containing only letters a-z or .. A . means it can represent any one letter

[LeetCode] Add and Search Word - Data structure design 添加和查找单词-数据结构设计

Design a data structure that supports the following two operations: void addWord(word) bool search(word) search(word) can search a literal word or a regular expression string containing only letters a-z or .. A . means it can represent any one letter

关于如何查找和搜索所有的绑架和逮捕集团的人员的算法和数据结构设计简要说明

这个计划代号   女王陛下 v0.1    拨款 1000元     你来完成啊..帅哥 关于如何精确的查询专业的逮捕和绑架集团的人的算法和数据结构设计 基本特征分析:这些人的心脏是一种专门制造来抓人的心脏,除了心脏以外                         其它器官和功能都和土著自然人一样,甚至显得还优雅一些 这种人造人的特征值:它们所做的任何事情和说的任何语言                  写的任何文章的目的都是为了抓人,这些行为,语言和文章                 

SQL查询优化——数据结构设计

本文部分内容会涉及mysql,可能在其他数据库中并不适用.本章节只针对数据库结构设计做讨论,查询优化的其他内容待续. 数据库设计及使用是WEB开发程序员必备的一项基础技能,在大数据量和高并发场景,合理的数据结构及SQL查询优化对项目来说都会显得格外重要.大部分有经验的程序员都能了解到,程序的瓶颈往往不在程序本身,而在数据访问层.造成数据访问效率低下的原因有很多,如何解决这些问题,直接影响到应用的稳定性.健壮性.以下列举几个常见的问题: 数据库锁表,查询阻塞 高并发场景下,链接数量瓶颈 查询效率低

iOS开发项目篇—32添加上拉刷新数据

iOS开发项目篇—32添加上拉刷新数据 一.简单说明 图片示意 思路:可以自定义一个view(示意xib),在view中添加一个label和菊花,指示状态.把这个view设置为tableView的底部视图. 二.实现过程 1.新建一个类和xib,关联 (1)创建一个类,让其继承自UIView (2)创建一个xib文件,用来定义上拉提示框 (3)定义的xib文件,把类和xib文件进行关联 2.实现代码: YYlaodStatusesFooter.h文件 1 // 2 // YYlaodStatus

破解百词斩单词数据之旅

作为一位英语爱好者,百词斩是我每天都会用的一款APP,这款应用可以自测词汇量,并巩固你的单词量,确实是一款用心的产品.作为一名雅思7分选手,个人觉得里面的发音和例句,对于口语还是有很大的帮助,可以边听边读,做到碎片化的学习.总言而之,推荐大家都体验一下. 再完美的产品也会有瑕疵,我的词汇量在1.3万左右,大多数单词都能比较熟悉,直接斩掉,但也会有零星的生僻词,我会收藏起来,每天专门巩固这部分词汇.用了两年之久,收藏了八九百个单词了,对于我而言,这些单词属于Panic Zone,需要重点强化的.所

python在Ubuntu添加模块搜索路径

本文我们来分享python添加模块搜索路径的3个方法,另外不补充了篇"为Python添加默认模块搜索路径". 大约有这么几种方法: 1.添加环境变量PYTHONPATH,python会添加此路径下的模块,在.bashrc文件中添加如下类似行: export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages 2.在site-packages路径下添加一个路径配置文件,文件的扩展名为.pth,内容为要添加的路径即可

调用{dede:likewords}为dedecms添加相关搜索词

经常看到一些大型的网站会设置相关搜索,即使访客搜索的内容在本站暂时没有,它们也会展示一些其他搜索关键词,引导用户去点击查看,增加pv,提高用户体验:如果没有这些相关搜索,游客没有找到自己想要的内容就直接跳出页面离开你的网站,造成变相损失. 那么我们如何来添加相关搜索呢?我的网站是用dedecms搭建的,织梦cms怎么插入相关搜索呢?其实织梦文章系统已经有集成相关搜索的标签函数{dede:likewords},只是我们没有调用而已.在这里ytkah就为您详解. 调用dedecms相关搜索代码很简单