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

力扣676.实现一个魔法字典

力扣676.实现一个魔法字典

  • 字典树 + dfs

  •   class Trie{public:Trie* next[26];bool is_end = false;};class MagicDictionary {public:Trie* root = new Trie();void add(string& word){Trie* p = root;for(char c:word){if(p->next[c-'a'] == NULL) p->next[c-'a'] = new Trie();p = p->next[c-'a'];}p->is_end = true;}//idx为下标 , cnt为可以修改的字符数量 初始为1bool dfs(string& word,int idx,Trie* cur,int cnt){//cnt必须为0,并且字符串必须结束if(idx == word.size()) return cnt == 0 && cur->is_end;for(int i=0;i<26;i++){if(cur->next[i] == NULL) continue;//如果idx位匹配,继续下一个if(i == word[idx] - 'a'){if(dfs(word,idx+1,cur->next[i],cnt)) return true;}//如果idx位不匹配,如果还能修改,就修改继续下一个else if(cnt>0 && dfs(word,idx+1,cur->next[i],cnt-1)) return true;}return false;}void buildDict(vector<string> dictionary) {for(string &word:dictionary)add(word);}bool search(string searchWord) {return dfs(searchWord,0,root,1);}};
    
http://www.lryc.cn/news/411962.html

相关文章:

  • ctfshow-web入门-sql注入(web171-web175)
  • 视频怎么添加音乐?分享5种视频添加音乐方法
  • 黑马JavaWeb后端案例开发(包含所有知识点!!!)
  • FPGA开发——蜂鸣器实现音乐播放器的设计
  • InnoDB存储引擎(1)
  • VMWare虚拟机共享主机的网络访问外网
  • LeetCode Easy|【415. 字符串相加】
  • RAG 革命:NVIDIA 工作站如何成为企业 AI 的秘密武器
  • 九大原则,轻松构建个人高效SOP
  • Airtest的demo实现多设备并行
  • 社区养老服务小程序的设计
  • Interceptor拦截器开发
  • 美团 AIGC产品经理面经(已拿 offer)
  • @RequestBody与@RequestParam
  • vmware上,虚机经常丢失网卡。导致无法上网。
  • git 鉴权失败
  • [C++] 容器适配器:深入理解Stack与Queue的底层原理
  • Eclipse maven 的坑
  • 多模态视觉大语言模型——LLaVA
  • 服务注册到nacos上,不能点击下线的问题处理
  • 未来3-5年,哪些工作会被AI取代
  • 鸿蒙系统开发【网络管理】
  • nginx如何处理请求
  • 换地不换IP?揭秘微博IP地址的奥秘
  • 数据库事务处理技术——故障恢复
  • Java零基础之多线程篇:性能考虑篇
  • CSP 初赛复习 :计算机网络基础
  • 【Docker应用】快速搭建Plik服务结合内网穿透无公网IP远程访问传输文件
  • 记录使用FlinkSql进行实时工作流开发
  • 韶音开放式耳机怎么样?韶音、西圣、QCY热门款实测横评