zoukankan      html  css  js  c++  java
  • 208. Implement Trie (Prefix Tree) 实现前缀树

     Implement a trie with insert, search, and startsWith methods.

    Note:
    You may assume that all inputs are consist of lowercase letters a-z


    1. var Trie = function() {
    2. this.nodes = {};
    3. };
    4. Trie.prototype.insert = function(word) {
    5. let node = this.nodes, cur;
    6. for (let i = 0; i < word.length; i++) {
    7. cur = word[i];
    8. if (!node[cur]) {
    9. node[cur] = {};
    10. }
    11. node = node[cur];
    12. }
    13. node.isWord = true;
    14. };
    15. Trie.prototype.search = function(word) {
    16. let node = this.nodes, cur;
    17. for (let i = 0; i < word.length; i++) {
    18. cur = word[i];
    19. if (!node[cur]) {
    20. return false;
    21. }
    22. node = node[cur];
    23. }
    24. return node.isWord == true;
    25. };
    26. Trie.prototype.startsWith = function(prefix) {
    27. let node = this.nodes, cur;
    28. for (let i = 0; i < prefix.length; i++) {
    29. cur = prefix[i];
    30. if (!node[cur]) {
    31. return false;
    32. }
    33. node = node[cur];
    34. }
    35. return true;
    36. };






  • 相关阅读:
    hdu 4508
    hdu 4506
    hdu 4505
    hdu 1525
    hdu 2212
    (贪心)删数问题
    (最短路 Dijkstra) hdu 1544
    (次小生成树) poj 1679
    (prim)hdu 1102
    (kruskal)hdu 1863
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/8040330.html
Copyright © 2011-2022 走看看