211. 添加与搜索单词 - 数据结构设计(JS实现)

2026华为OD机试(JavaScript)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ 华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,JavaScript实现。 阅读详情

1 题目

设计一个支持以下两种操作的数据结构:
void addWord(word)
bool search(word)
search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。
示例:
addWord(“bad”)
addWord(“dad”)
addWord(“mad”)
search(“pad”) -> false
search(“bad”) -> true
search(".ad") -> true
search(“b…”) -> true
说明:
你可以假设所有单词都是由小写字母 a-z 组成的。

链接:https://leetcode-cn.com/problems/add-and-search-word-data-structure-design

2 思路

这道题还是用字典树的方法来存储单词,每个节点维护一个指针数组,搜索时若遇到小数点,则递归遍历当前数组所有指针进行下一步搜索

3代码

/**
 * Initialize your data structure here.
 */
var WordDictionary = function() {
    this.startIndex = 'a'.charCodeAt();
    this.root = new Node();
};

/**
 * Adds a word into the data structure. 
 * @param {string} word
 * @return {void}
 */
WordDictionary.prototype.addWord = function(word) {
    if (word.length === 0) return;

    let p = this.root;
    for (let letter of word) {
        let index = letter.charCodeAt() - this.startIndex;
        if (!p.list[index]) {
            p.list[index] = new Node();
        }

        p = p.list[index];
    }

    p.word = word;
};

/**
 * Returns if the word is in the data structure. A word could contain the dot character '.' to represent any one letter. 
 * @param {string} word
 * @return {boolean}
 */
WordDictionary.prototype.search = function(word) {
    if (word.length === 0) return false;

    return this.d(this.root, word);

};

WordDictionary.prototype.d = function(p, word) {
   if (!p) return false;
   if (word === '') return !!p.word;
   
   let letter = word[0];
    
   if (letter === '.') {
       for (let i=0; i<p.list.length; i++) {
           if (p.list[i] && this.d(p.list[i], word.slice(1))) {
               return true;
           }
       }
       return false;
   } else {
       let index = letter.charCodeAt() - this.startIndex;
       p = p.list[index];
       return this.d(p, word.slice(1));
   }
}

function Node() {
    this.list = [];
    this.word = null;
}

/**
 * Your WordDictionary object will be instantiated and called as such:
 * var obj = new WordDictionary()
 * obj.addWord(word)
 * var param_2 = obj.search(word)
 */
wordfind:一个小的javascript库,用于生成和解决单词查找(也称为单词搜索)难题 Wordfind是一个简单的javascript库,用于生成(希望很有趣)单词查找(也称为单词搜索)拼图。 只需输入一组单词,几毫秒后它就会吐出包含这些单词的拼图。 核心的wordfind.js库不包含任何依赖关系,并且可以在浏览器和node.js中使用。 该存储库还包括一个功能齐全的单词查找游戏(恰当地称为wordfindgame.js )作为示例。 该游戏对jQuery有依赖性。 这是的分支,允许您指定所需的填充字母。 在查看示例游戏。 立即下载

相关推荐

认知网络分析实战:用Python复现课堂对话研究(含LSA代码)

本文通过Python实战,详细演示了如何运用认知网络分析(ENA)和滞后序列分析(LSA)两种方法,对课堂对话数据进行深度挖掘。文章提供了从数据清洗、行为编码到网络构建、序列统计及可视化的完整代码流程,帮助教育研究者和数据分析师量化分析对话中的认知结构与动态互动模式,从而获得超越文本表面的研究洞见。

weixin_28559803的博客 155

JSP实现一个查询单词的网页(可依据拼写、词性、难度查出所需词汇;依据释义查出对应单词;统计单词个数)

具体要求: 1、用JSP编写网页。实现一个查询单词的网页,能依据拼写、词性、难度范围等信息查出所需词汇的释义来。建立大学四级、六级词汇表放到MYSQL数据库中,至少包括:单词、词性、释义、难度(标记是4级的还是6级还是其他)。 2、反查:能依据释义内容,模糊查出对应的单词。 3、统计:实现对单词表中a,b,c到z开头单词个数的统计,结果以表格输出到网页上。 1、将英文生词做成一张表放入My...

张海玲的博客 1572

数据埋点系列 3|数据质量保证:验证、清洗与管理

数据质量管理是一个持续的过程,需要技术和组织文化的共同支持。通过本文,我们深入探讨了数据质量保证的各个方面,从基本的验证和清洗技术,到高级的监控和自动化策略。主动的而非被动的自动化的而非手动的持续的而非一次性的全面的而非局部的随着数据在决策中的作用越来越重要,确保数据质量将成为每个数据驱动型组织的核心竞争力。通过实施本文中讨论的策略和技术,你将能够建立一个强大的数据质量保证体系,为你的组织带来更可靠、更有价值的数据洞察。

一个8年大数据开发工程师的碎碎念 1464

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

一、需求 请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary : ①WordDictionary() 初始化词典对象; ②void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配; ③bool search(word) 如果数据结构中存在字符串与word 匹配,则返回 true ;否则,返回false 。word 中可能包含一些 '.' ,...

皮卡qiu~的博客 458

计算机组成原理实验(已通关)-华中科技大学头歌Educoder(Logisim)

汉字国标码转区位码实验 汉字机内码获取实验 8位可控加减法电路设计 第2关 CLA182四位先行进位电路设计 第3关 4位快速加法器设计 第4关 16位快速加法器设计 第5关 32位快速加法器设计 第6关 5位无符号阵列乘法器设计 6位有符号补码阵列乘法器 乘法流水线设计 原码一位乘法器设计 偶校验编码设计 偶校验解码电路设计 16位海明编码电路设计 16位海明解码电路设计 海明编码流水传输实验 16位CRC并行编解码电路设计 CRC编码流水传输实验

紫荆鱼的博客 4万+

2022网安保研经验帖

2022网安保研经验

fumingxiaoshen的博客 4894

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

211. 添加与搜索单词 - 数据结构设计 请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary : WordDictionary() 初始化词典对象 void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配 bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 false 。word 中可能包含一些 '.' ,每个 . 都可以表示任

Yuan_xii的博客 220

FOC时序及电流采样注意事项

摘要:本文介绍了无刷电机FOC(磁场定向控制)的实现方法,重点解析了电流采样时序与PWM同步的关键技术。在S32K144平台上,需使用两个独立的ADC组件实现双路电流同步采样,采样时刻必须严格对应低边MOS管开启时间并位于PWM波形中央。文章详细说明了硬件触发时序设计、采样电阻配置原则,并通过示波器实测波形验证了电流反馈电路的正确性,指出正弦电流波形应是理想输出形态。关键点包括ADC-PWM时序同步、低边MOS采样及正确的PWM映射配置。

qq_40916548的博客 2619

iOS LeetCode ☞ 添加与搜索单词 - 数据结构设计

请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary : WordDictionary() 初始化词典对象 void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配 bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 false 。word 中可能包含一些 '.' ,每个 . 都可以表示任何一个字母。 示例: 输入: ["WordD

HumorousGhost 488

Ansys Zemax实战:5步搞定衍射光学元件(DOE)设计,附赠超透镜(metalens)避坑指南

本文详细介绍了使用Ansys Zemax进行衍射光学元件(DOE)和超透镜(metalens)设计的5步实战流程。从基础光学系统搭建到相位面设计验证,再到制造准备与实测对比,全面解析了OpticStudio中的关键技巧和常见避坑指南,帮助工程师高效完成复杂光学元件设计。

orange的博客 618

实现边缘实时动物检测:YOLOv5模型优化与树莓派4B部署全攻略

本文介绍了基于高性能计算机训练YOLOv5目标检测模型,并部署到树莓派4B实现实时动物检测的全流程。主要内容包括:1)在高性能计算机上通过Anaconda创建虚拟环境,安装YOLOv5项目并进行模型训练;2)将训练好的best.pt模型迁移到树莓派,配置轻量级Miniconda环境;3)连接树莓派摄像头,运行实时检测程序。该系统兼顾了训练效率和边缘设备部署的实用性,可广泛应用于智慧农业、生态监测等场景。文中详细说明了数据准备、环境配置和部署步骤,为开发轻量级目标检测系统提供了完整参考方案。

m0_64661770的博客 201

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

用单词查找树,实现方法有很多,但是看了算法第4版的实现发现代码真的简洁强大。 可以先看这篇文章:单词查找树 这里搜索单词只需要判断true或false,不需要全部匹配,稍稍修改了下。 class WordDictionary { private Node root; private static int R = 26; static cl...

小萨摩的博客 298

uniapp - 实现苹果App打包上架App Store应用商店详细教程,详解Hbuilder打包编译ipa发布上传到苹果ios软件商店全流程,提供云打包/离线本地打包ios、申请IOS苹果证书方法

uni-app,苹果ios,苹果app,打包编译,appstore应用商店,ipa发布到软件商店,uniapp的app苹果应用商店上架,上架苹果APPStore,uniApp打包的ipa文件上传到商店,上架苹果商城,审核失败,被拒绝,UniApp打包ipa文件,上架iOSAppStore流程指南,最新详细教程最全,Hbuilder打包发布iosapp,苹果云打包上线全过程,云打包IPA并上传到商店,打包iOSipa文件后怎么发布到应用商店,苹果证书申请教程,ios证书申请,mac电脑,审核很久

🏆 前端领域优质创作者 1万+

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

目录LeetCode 211: 添加与搜索单词 - 数据结构设计题目描述解题 LeetCode 211: 添加与搜索单词 - 数据结构设计 题目描述 如果数据结构中有任何与word匹配的字符串,则bool search(word)返回true,否则返回false。 单词可能包含点“。” 点可以与任何字母匹配的地方。 请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary : WordDictionary() 初始化词典对象 void

s_Shune 324

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

Qin_酱的博客 207

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Leetcode 211.添加与搜索单词 - 数据结构设计(Add and Search Word - Data structure design)

Leetcode 211.添加与搜索单词 - 数据结构设计 1 题目描述(Leetcode题目链接)   设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。 addWord("bad") addWord("dad") addWord("mad") search("pad") -> false search("bad")

qq_39378221的博客 285

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Leetcode|211.添加与搜索单词 - 数据结构设计

链接:https://leetcode-cn.com/problems/add-and-search-word-data-structure-design/ 设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。 示例:...

weixin_44058809的博客 316

LeetCode 211. 添加与搜索单词 - 数据结构设计(Trie树)

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

Michael是个半路程序员 1073

leetcode211. 添加与搜索单词 - 数据结构设计

设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。 参考leetcode208. 实现 Trie (前缀树): class WordDictionary: def __init__(self): ...

ShawDa's Blog 306

【Leetcode刷题篇】- Leetcode211 添加与搜索单词-数据结构设计

请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary : WordDictionary() 初始化词典对象 void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配 bool search(word) 如果数据结构中存在字符串与 word 匹配,则返回 true ;否则,返回 false 。word 中可能包含一些 ‘.’ ,每个 . 都可以表示任何一个字母。 示例: 输入: [“WordDic

Mind_programmonkey的博客 376

前缀树解析

前缀树 1. 介绍 首先用一张图来描述一下: 以 包含‘A-Z’ 的前缀树为例 从图中可以看出,前缀树是个树状结构,从root结点出发,如果遇到一个字符X,则下移到该字符对应的子节点中。 说到这里有点疑惑,数据结构到底是什么样子的? class Trie{ boolean isEnd; // 如果 isEnd 说明从根节点到此节点之间的路径,为一个预先插入的单词 // 当然这...

谷家舟 351

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

2025-2026年计算机毕业设计选题推荐:200+个热门精品毕设题目

042-springboot基于spring boot的软件学院学生成绩管理系统的设计与实现。186_springboot基于springboot的一个在线环保意识教育平台的设计与实现。springboot基于Spring Boot的食品安全信息管理系统的设计与实现7icc4。062-springboot基于springboot的青少年心理健康教育网站的设计与实现。069-springboot基于springboot的游戏创意工坊与推广平台的设计与实现。

xn19950718的博客 4198

美团校招技术岗备考指南:算法、Java与分布式系统

算法与数据结构、Java技术栈和分布式系统是互联网大厂技术岗校招的核心考察内容。算法能力作为计算机科学的基石,重点考察动态规划、图论等经典问题的解决思路;Java技术栈则涉及JUC并发、JVM调优及Spring框架原理,这些是构建高并发系统的关键技术;分布式系统领域的一致性协议、服务治理等概念,则是现代微服务架构的必备知识。美团等头部企业尤其注重候选人的工程实践能力,例如通过Redis实现高性能缓存、利用Spring Boot构建微服务等实际场景应用。备考时应采用"基础+专项+冲刺"的三轮复习法,结合Lee

weixin_34318272的博客 346
上一篇: 210. 课程表 II(JS实现)
下一篇: 213. 打家劫舍 II(JS实现)
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值