当前位置: 首页 > news >正文

海通建设集团有限公司网站庆阳网站设计 贝壳下拉

海通建设集团有限公司网站,庆阳网站设计 贝壳下拉,做网站都需要哪些费用,怎么做网站截图「程序员必须掌握的算法」字典树「上篇」 前言: 在计算机科学中#xff0c;字典树#xff08;Trie#xff09;是一种有序树#xff0c;用于保存关联数组#xff08;有时我们称之为“映射”或“字典”#xff09;。与二叉查找树不同#xff0c;键不是直接保存在节点中字典树Trie是一种有序树用于保存关联数组有时我们称之为“映射”或“字典”。与二叉查找树不同键不是直接保存在节点中而是由节点在树中的位置决定。字典树的优势在于能够非常快速地查找、插入和删除字符串。 本篇文章将介绍字典树的基本概念、构建方法以及应用场景并通过三道例题由浅入深地说明字典树的应用。 文章目录 「程序员必须掌握的算法」字典树「上篇」基本概念构建方法应用场景例题一查找单词例题二查找单词前缀例题三计算单词前缀数量 总结 基本概念 字典树是一种树形结构典型应用是用于统计和排序大量的字符串但不限于字符串。它经常被搜索引擎系统用于文本词频统计。 以下是字典树的基本概念 根节点不包含字符除根节点外每一个节点都只包含一个字符从根节点到某一节点路径上经过的字符连接起来为该节点对应的字符串每个节点的所有子节点包含的字符都不相同。 构建方法 一个字典树的典型操作是插入一个字符串我们可以按照以下步骤插入一个字符串 从根节点开始找到第一个字符所在的节点如果找到对应的节点继续寻找下一个字符如果找不到对应的节点创建一个新节点将其链接到前一个节点的对应指针上并继续寻找下一个字符。 以下是Java代码实现 class TrieNode {public boolean isWord;public TrieNode[] children new TrieNode[26]; }class Trie {private TrieNode root;public Trie() {root new TrieNode();}/** Inserts a word into the trie. */public void insert(String word) {TrieNode node root;for (char c : word.toCharArray()) {if (node.children[c - a] null) {node.children[c - a] new TrieNode();}node node.children[c - a];}node.isWord true;}/** Returns if the word is in the trie. */public boolean search(String word) {TrieNode node root;for (char c : word.toCharArray()) {if (node.children[c - a] null) {return false;}node node.children[c - a];}return node.isWord;}/** Returns if there is any word in the trie that starts with the given prefix. */public boolean startsWith(String prefix) {TrieNode node root;for (char c : prefix.toCharArray()) {if (node.children[c - a] null) {return false;}node node.children[c - a];}return true;} }应用场景 字典树最常见的应用场景是字符串相关的问题以下是三道例题由浅入深地说明字典树的应用 例题一查找单词 给定一个单词集合如下所示查找一个单词是否在集合中出现。 [hello, world, leetcode]以下是Java代码实现 class Solution {public boolean findWord(String[] words, String target) {Trie trie new Trie();for (String word : words) {trie.insert(word);}return trie.search(target);} }例题二查找单词前缀 给定一个单词集合如下所示查找一个单词是否是集合中的某个单词的前缀。 [hello, world, leetcode]以下是Java代码实现 class Solution {public boolean findPrefix(String[] words, String target) {Trie trie new Trie();for (String word : words) {trie.insert(word);}return trie.startsWith(target);} }例题三计算单词前缀数量 给定一个单词集合如下所示计算以某个前缀开头的单词数量。 [hello, world, leetcode]以下是Java代码实现 class TrieNode {public int count;public TrieNode[] children new TrieNode[26]; }class Trie {private TrieNode root;public Trie() {root new TrieNode();}public void insert(String word) {TrieNode node root;for (char c : word.toCharArray()) {if (node.children[c - a] null) {node.children[c - a] new TrieNode();}node node.children[c - a];node.count;}}public int countPrefix(String prefix) {TrieNode node root;for (char c : prefix.toCharArray()) {if (node.children[c - a] null) {return 0;}node node.children[c - a];}return node.count;} }class Solution {public int countPrefix(String[] words, String prefix) {Trie trie new Trie();for (String word : words) {trie.insert(word);}return trie.countPrefix(prefix);} }在上述代码中我们通过 countPrefix 方法来计算以某个前缀开头的单词数量。 总结 本篇文章介绍了字典树的基本概念、构建方法和应用场景并提供了三道例题由浅入深地说明字典树的应用。在实际开发中字典树是一种非常常用的数据结构能够帮助我们解决各种字符串相关的问题。
http://wiki.neutronadmin.com/news/333649/

相关文章:

  • 网站推广在哪好外贸wordpress 删除数据库
  • 公司的官方网站怎么做网站建设一年多少钱
  • 大连城市建设集团网站枫林seo
  • 华为公司网站建设方案免费个人网页制作网站
  • 常州外贸网站建设公司域名设计
  • 做任务转比特币的网站手机网站怎么做优化
  • 用软件做的网站权限管理荥阳网站建设多少钱
  • 如何建微信微网站哪些网站可以做免费外贸
  • 色轮 网站京津冀协同发展现状
  • 做单机游戏破解的网站汝州市住房和城乡建设局网站
  • 纯静态网站挂马上海企业地址大全
  • 网站建设需求有哪些用dw做的网站能用吗
  • 单页网站在线制作看楼盘的app
  • 网站建设中的智能元素品牌logo设计图片
  • 跨境网站有哪些杭州明开seo
  • 个人免费建站软件wordpress lofter主题
  • 棋牌游戏网站建设费用f2fpay wordpress
  • 网站的营销推广方案及预算搜狗站长平台验证网站
  • 百度营销-网站分析培训学校网站维护
  • 上海松江区网站建设公司网站运营公司哪家效果好
  • 什么网站做蔬菜生鲜比较好无锡食品网站设计
  • 快速开发网站的应用程序衡水专业网站建设公司
  • 云图书馆平台网站建设企业咨询公司取名
  • 如何创建微信小程序下单seo怎么学
  • 网站首页作用建设银行网站表单清理
  • 南京自助网站推广建站泉州网红餐厅
  • 做网站文案建设局全称是什么
  • 好的响应式网站公司怎么推广网络营销
  • 一般网站建设电话网站策划500字
  • wordpress繁简体seo的理解