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

床上爱做网站网站开发公司

床上爱做网站,网站开发公司,宜宾做网站公司,建网站电脑版和手机版怎么做字符流【LC1032】 设计一个算法:接收一个字符流,并检查这些字符的后缀是否是字符串数组 words 中的一个字符串。 例如,words ["abc", "xyz"] 且字符流中逐个依次加入 4 个字符 a、x、y 和 z ,你所设计的算法…

字符流【LC1032】

设计一个算法:接收一个字符流,并检查这些字符的后缀是否是字符串数组 words 中的一个字符串。

例如,words = ["abc", "xyz"] 且字符流中逐个依次加入 4 个字符 'a''x''y''z' ,你所设计的算法应当可以检测到 "axyz" 的后缀 "xyz"words 中的字符串 "xyz" 匹配。

按下述要求实现 StreamChecker 类:

  • StreamChecker(String[] words) :构造函数,用字符串数组 words 初始化数据结构。
  • boolean query(char letter):从字符流中接收一个新字符,如果字符流中的任一非空后缀能匹配 words 中的某一字符串,返回 true ;否则,返回 false

字典树还是比较熟练了,不熟练的快来练习吧

  • 思路:【字典树】

    还是字典树的老套路,题目要求是与字符流的后缀匹配,因此将words逆序加入到字典树中,然后使用StringBuilder存储字符流中的字符,每加入一个字符判断是否有其后缀字符串在字典树中存在,同样以逆序的形式判断,如果某个节点的cnt大于0,那么表示有匹配的后缀

  • 实现

    class StreamChecker {StringBuilder sb;class TireNode{TireNode[] next = new TireNode[26];int cnt;}TireNode root;public void insert(String s){TireNode p = root;for (int i = s.length() - 1; i >= 0; i--){int u = s.charAt(i) - 'a';if (p.next[u] == null)  p.next[u] = new TireNode();p = p.next[u];}p.cnt++;}public StreamChecker(String[] words) {root = new TireNode();sb = new StringBuilder();for (String word : words){insert(word);}}public boolean query(char letter) {sb.append(letter);TireNode p = root;for (int i = sb.length() - 1; i >= 0; i--){int u = sb.charAt(i) - 'a';if (p.next[u] == null) return false;p = p.next[u];if (p.cnt > 0) return true;}return p.cnt > 0;}
    }/*** Your StreamChecker object will be instantiated and called as such:* StreamChecker obj = new StreamChecker(words);* boolean param_1 = obj.query(letter);*/
    
    • 复杂度
      • 时间复杂度:insert的时间复杂度为O(n)O(n)O(n)nnn为字符串的长度,StreamChecker的时间复杂度为O(mn)O(mn)O(mn)mmm为字符串的大小,query的时间复杂度为O(d)O(d)O(d)ddd为字典树的大小
      • 空间复杂度:O(d)O(d)O(d)
http://www.hkea.cn/news/226743/

相关文章:

  • 网站域没到期不能续费吗google谷歌搜索
  • 厦门好的做网站公司网络营销推广方式都有哪些
  • 重庆市建设工程信息官网站自己做网站的流程
  • 网站建设公司怎么做网络营销网站推广
  • 360应用商店seo服务套餐
  • 废橡胶网站建设个人博客网页设计
  • 什么网站做一手项目好域名查询官网
  • 做日用品的要找什么网站好站长工具端口检测
  • 贵州软件开发 网站开发手机版百度一下
  • 企业网站建立答辩问题百度怎么发布广告
  • 温州快建网站地推拉新接单网
  • 濉溪县城乡建设委员会燃气办网站热狗网站排名优化外包
  • 网站能不能自己做免费的seo教程
  • 湖南的商城网站建设优化教程网下载
  • 做网站需要哪些工程师西安seo诊断
  • tp做的网站封装成app2023北京封控了
  • 增城做网站要多少钱推广普通话手抄报
  • 石家庄网站系统开发智能搜索引擎
  • 迅速网站网络营销平台推广方案
  • 学前端要逛那些网站微信引流主动被加软件
  • 韩国flash网站免费手机网站建站平台
  • 东莞做网站卓诚网络昆明长尾词seo怎么优化
  • WordPress个性萌化插件郑州seo优化哪家好
  • 专业手机移动网站建设免费的seo优化
  • 西安网站建设王永杰域名注册 万网
  • 网站营销优化方案北京做的好的seo公司
  • 企业网站排名提升软件优化南宁seo优化
  • 创意合肥网站建设杭州seo公司排名
  • 网站专题页是什么中国十大关键词
  • 五月天做网站网络策划与营销