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

合肥做网站点击精灵seo

合肥做网站,点击精灵seo,制作网站的模板,去哪网站备案吗1--前缀树的实现 前缀树的每一个节点拥有三个成员变量&#xff0c;pass表示有多少个字符串经过该节点&#xff0c;end表示有多少个字符串以该节点结尾&#xff0c;nexts表示该字符串可以走向哪些节点&#xff1b; #include <iostream> #include <unordered_map>str…

1--前缀树的实现

        前缀树的每一个节点拥有三个成员变量,pass表示有多少个字符串经过该节点,end表示有多少个字符串以该节点结尾,nexts表示该字符串可以走向哪些节点;

#include <iostream>
#include <unordered_map>struct TreeNode{TreeNode() : pass(0), end(0){}int pass; // 经过次数int end; // 是多少个字符串的结尾std::unordered_map<char, TreeNode*> nexts;
};class Trie{
public:// 构造函数Trie(){root = new TreeNode();}void insert(std::string word){if(word.length() == 0) return;TreeNode *node = root;node->pass++;for(int i = 0; i < word.length(); i++){if(node->nexts[word[i]] == NULL){ // 哈希表中没有该字符node->nexts[word[i]] = new TreeNode(); // 新建该字符}node = node->nexts[word[i]];node->pass++; // 该字符节点经过的次数++}node->end++; // 遍历word末尾时,节点的end++,表明以该节点结尾的字符串数++}bool search(std::string word){if(word.length() == 0) return true;TreeNode *cur = root;for(int i = 0; i < word.length(); i++){if(cur->nexts[word[i]] == NULL) return 0; // 没有该字符节点cur = cur->nexts[word[i]];}return cur->end; // end不为0表明该字符串出现过}bool startWith(std::string prefix){if(prefix.length() == 0) return 0;TreeNode *cur = root;for(int i = 0; i < prefix.length(); i++){if(cur->nexts[prefix[i]] == NULL) return 0; // 前缀没出现过cur = cur->nexts[prefix[i]];}return cur->pass; // 有多少个字符串经过该前缀,0个表明false;}private:TreeNode *root;
};int main(int argc, char *argv[]){Trie T1;std::string test1 = "hello";T1.insert(test1);bool res1 = T1.search(test1);if(res1) std::cout << "true" << std::endl;else std::cout << "false" << std::endl;bool res2 = T1.startWith("hel");if(res2) std::cout << "true" << std::endl;else std::cout << "false" << std::endl;return 0;
}

2--LeetCode真题

2-1--实现Trie(前缀树)

         本题不能自定义节点,因此将 pass、end 和 nexts 等成员变量转换成类的成员变量,新节点就是类的对象;

class Trie{
public:// 构造函数Trie(){}void insert(std::string word){if(word.length() == 0) return;Trie *node = this;node->pass++;for(int i = 0; i < word.length(); i++){if(node->nexts[word[i]] == NULL){ // 哈希表中没有该字符node->nexts[word[i]] = new Trie(); // 新建该字符}node = node->nexts[word[i]];node->pass++; // 该字符节点经过的次数++}node->end++; // 遍历word末尾时,节点的end++,表明以该节点结尾的字符串数++}bool search(std::string word){if(word.length() == 0) return true;Trie *cur = this;for(int i = 0; i < word.length(); i++){if(cur->nexts[word[i]] == NULL) return 0; // 没有该字符节点cur = cur->nexts[word[i]];}return cur->end; // end不为0表明该字符串出现过}bool startsWith(std::string prefix){if(prefix.length() == 0) return 0;Trie *cur = this;for(int i = 0; i < prefix.length(); i++){if(cur->nexts[prefix[i]] == NULL) return 0; // 前缀没出现过cur = cur->nexts[prefix[i]];}return cur->pass; // 有多少个字符串经过该前缀,0个表明false;}private:int pass = 0; // 经过次数int end = 0; // 是多少个字符串的结尾std::unordered_map<char, Trie*> nexts;
};

http://www.dinnco.com/news/46516.html

相关文章:

  • 岳阳网站开发收费网络营销外包推广价格
  • 做网站要学什么东西一份完整的市场调查方案
  • 内网如何做网站访问推广
  • 音乐视频怎么做mp3下载网站微信公众号软文怎么写
  • 网站建设方法seo优化软件大全
  • 搜索引擎手机动态网站制作设计牡丹江网站seo
  • 网站建设签收单在哪里推广比较好
  • 网站顶部小图标怎么做营销渠道的三个类型
  • 电商运营适合女生吗域名年龄对seo的影响
  • 郴州做网站阿里云域名查询和注册
  • 免费网站模板源码一个网站如何推广
  • 美食网站建设目的搜狗seo
  • 叙述网站的设计制作流程佛山旺道seo
  • 南通高端网站建设机构百度seo入驻
  • 网站建设公司 青岛友情链接例子
  • 网站制作价格 上海关键词seo服务
  • 住房和城乡建设厅官方网大连seo关键词排名
  • 怎么优化网站内容什么是关键词
  • 实训做网站收获个人做seo怎么赚钱
  • 做策划的都上哪些网站搜索资料间抖音seo是什么意思
  • 怎样做私人网站关键词林俊杰免费听
  • 成都市网站设计开发互联网营销成功案例
  • 自己做的网站打开速度慢百度学术搜索入口
  • 那个网站直接回做二手发电机yandere搜索引擎入口
  • 如何建设网站的外接 以及在增加外接的时应当注意什么深圳网站搜索优化工具
  • 广东深圳软件开发公司晋城网站seo
  • 美食网站中饮食资讯该怎么做网络服务公司经营范围
  • 网站建设为什么需要数据库seo整站优化系统
  • 网站建设联系电话下载百度app到桌面
  • 南京html5网站建设网站开发的一般流程