码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 676. Implement Magic Dictionary

时间:2019-12-28 10:10:23      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:dex   node   const   ldd   code   als   amp   log   send   

使用Tire 处理

function Node(value) {
      this.word = null
      this.children = {}
    }
    class MagicDictionary {
      constructor() {
        this.root = new Node(null)
      }
      addWord(word) {
        var node = this.root;
        for (var i = 0; i < word.length; i++) {
          var next = word[i]
          if (!node.children[next]) {
            node.children[next] = new Node()
          }
          node = node.children[next]
        }
        node.isEnd = true
      }
      buildDict(words) {
        for (let word of words) {
          this.addWord(word)
        }
      }
      search(word) {
        var v = !!searchInner(this.root, word, 0, 0);
        console.log(v);
        return v
      }
    }

    function searchInner(node, word, index, flag) {
      if (index < word.length) {
        var cur = word[index]
        if (node.children[cur]) {
          if (searchInner(node.children[cur], word, index + 1, flag)) {
            return true
          }
        }
        if (!flag) {
          for (let c in node.children) {
            if (c !== cur && searchInner(node.children[c], word, index + 1, true)) {
              return true
            }
          }
        }
        return false
      }
      return (flag && node.isEnd);
    }



    var tire = new MagicDictionary()
    tire.buildDict(["hello", "leetcode"])
    tire.search('hello')
    tire.search('hhllo')
    tire.search('hell')
    tire.search('leetcoded')


    var tire1 = new MagicDictionary()
    tire1.buildDict(["hello", "hallo", "leetcode"])
    tire1.search('hello')
    tire1.search('hhllo')
    tire1.search('hell')
    tire1.search('leetcodd')

leetcode 676. Implement Magic Dictionary

标签:dex   node   const   ldd   code   als   amp   log   send   

原文地址:https://www.cnblogs.com/rubylouvre/p/12110169.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!