当前位置: 首页> 教育> 就业 > 广西网站建设产品优化_网络营销的特点包括哪些_域名查询ip138_网络推广怎么赚钱

广西网站建设产品优化_网络营销的特点包括哪些_域名查询ip138_网络推广怎么赚钱

时间:2025/7/17 23:48:06来源:https://blog.csdn.net/code120302/article/details/146137289 浏览次数:1次
广西网站建设产品优化_网络营销的特点包括哪些_域名查询ip138_网络推广怎么赚钱

字典树运用

  • 字典树
    • LC208 创建字典树
    • 0-1字典树

字典树

字典树又叫 前缀树, 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。

LC208 创建字典树

这是一个字符串字典树的典型例子,字符串中只包含26个小写字母。
在这里插入图片描述
代码为:

class Trie {class Node{boolean end;Node[] son = new Node[26];}private Node root;public Trie() {root = new Node(); //伪根}public void insert(String word) {Node cur = root;for(int i = 0; i < word.length(); i++){char c = word.charAt(i);if(cur.son[c - 'a'] == null){cur.son[c - 'a'] = new Node();}cur = cur.son[c - 'a'];}cur.end = true;}public boolean search(String word) {Node cur = root;for(char ch : word.toCharArray()){ch -= 'a';if(cur.son[ch] == null){return false;}cur = cur.son[ch];}if(cur.end != true){return false;}return true;}public boolean startsWith(String prefix) {Node cur = root;for(char ch : prefix.toCharArray()){ch -= 'a';if(cur.son[ch] == null){return false;}cur = cur.son[ch];}return true;}
}

0-1字典树

应用:求最大异或和
在这里插入图片描述
代码如下:

import java.io.*;
import java.util.List;
import java.util.ArrayList;class Main{static class Node{Node[] son = new Node[2];int count = 0;}static void insert(Node root, int num){Node cur = root;cur.count++;for(int i = 31; i >= 0; i--){int bit = (num >> i) & 1;if(cur.son[bit] == null){cur.son[bit] = new Node();}cur = cur.son[bit];cur.count++;}}static void remove(Node root, int num){Node cur = root;cur.count--;for(int i = 31; i >= 0; i--){int bit = (num >> i) & 1;cur = cur.son[bit];cur.count--;  //不物理上删除任何节点,采用count来表示节点删除}}static int query(Node root, int num){Node cur = root;if(root.count == 0){return -1;}int res = 0;for(int i = 31; i >= 0; i--){int bit = (num >> i) & 1;int orBit = 1 - bit;if(cur.son[orBit] != null && cur.son[orBit].count > 0){res += (1 << i);cur = cur.son[orBit];} else {cur = cur.son[bit];}}return res;}public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StreamTokenizer st = new StreamTokenizer(br);st.parseNumbers();st.nextToken();int n = (int)st.nval;Node root = new Node();for(int k = 0; k < n; k++){st.nextToken();int ops = (int)st.nval;st.nextToken();int num = (int)st.nval;if(ops == 1){insert(root, num);} else if(ops == 2){remove(root, num);} else {int res = query(root, num);System.out.println(res);}}}   }
关键字:广西网站建设产品优化_网络营销的特点包括哪些_域名查询ip138_网络推广怎么赚钱

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: