首页 > 其他 > 详细

leetcode 211. Add and Search Word - Data structure design

时间:2019-12-26 01:06:52      阅读:67      评论:0      收藏:0      [点我收藏+]

模糊匹配

function Node(value) {
      this.value = value
      this.passCount = 0;
      this.endCount = 0;
      this.children = {}
    }
    class WordDictionary {
      constructor() {
        this.root = new Node(null)
      }
      addWord(word) {
        var node = this.root;
        for (var c of word) {
          if (!node.children[c]) {
            node.children[c] = new Node(c)
          }
          node = node.children[c]
          node.passCount++
        }
        node.endCount++
      }
      search(word) {
        if (word === '') {
          return true
        }
        return searchRecursively(this.root, word, 0)
      }

    }
    function searchRecursively(cur, word, index) {
      if (index == word.length) {
        return !!cur.endCount;
      }
      var c = word.charAt(index);
      if (c == '.') {
        for (var i in cur.children) { //下一层
          if (searchRecursively(cur.children[i], word, index + 1)) {
            return true;
          }
        }
        return false;
      } else {
        var node = cur.children[c]
        if (node) {
          return searchRecursively(node, word, index + 1);
        } else {
          return false
        }
      }
      return false
    }

leetcode 211. Add and Search Word - Data structure design

原文:https://www.cnblogs.com/rubylouvre/p/12099725.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!