parent
26e758f3f4
commit
a1fa24b4a7
@ -1,9 +1,6 @@
|
|||||||
package leo.class01;
|
package leo.class01_01;
|
||||||
|
|
||||||
import com.sun.org.apache.xpath.internal.functions.FuncFalse;
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
import sun.jvm.hotspot.debugger.Page;
|
|
||||||
import sun.security.util.Length;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Leo
|
* @author Leo
|
||||||
@ -1,11 +1,8 @@
|
|||||||
package leo.class01;
|
package leo.class01_01;
|
||||||
|
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
import javax.swing.plaf.TreeUI;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Leo
|
* @author Leo
|
||||||
* @ClassName BSExist
|
* @ClassName BSExist
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class01;
|
package leo.class01_01;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class01;
|
package leo.class01_01;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class01;
|
package leo.class01_01;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class01;
|
package leo.class01_01;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
@ -1,8 +1,4 @@
|
|||||||
package leo.class01;
|
package leo.class01_02;
|
||||||
|
|
||||||
import sun.applet.Main;
|
|
||||||
|
|
||||||
import java.nio.ByteOrder;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Leo
|
* @author Leo
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class01;
|
package leo.class01_02;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Leo
|
* @author Leo
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
@ -1,6 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
import jdk.nashorn.internal.ir.IfNode;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -1,6 +1,5 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
import java.lang.reflect.Array;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
|
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class02_03;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
@ -1,6 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class03_04;
|
||||||
|
|
||||||
import java.util.function.IntPredicate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Leo
|
* @author Leo
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class03_04;
|
||||||
|
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class03_04;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class02;
|
package leo.class03_04;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class03;
|
package leo.class04_06;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Leo
|
* @author Leo
|
||||||
@ -1,8 +1,7 @@
|
|||||||
package leo.class03;
|
package leo.class04_06;
|
||||||
|
|
||||||
import leo.util.ArrayUtil;
|
import leo.util.ArrayUtil;
|
||||||
|
|
||||||
import java.lang.reflect.Array;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class03;
|
package leo.class04_06;
|
||||||
|
|
||||||
import java.util.PriorityQueue;
|
import java.util.PriorityQueue;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class04;
|
package leo.class04_07;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Leo
|
* @author Leo
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package leo.class04;
|
package leo.class04_07;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
@ -0,0 +1,105 @@
|
|||||||
|
package leo.class05_08;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Leo
|
||||||
|
* @ClassName TrieTree
|
||||||
|
* @DATE 2020/12/1 5:06 下午
|
||||||
|
* @Description 前缀树
|
||||||
|
*/
|
||||||
|
class TrieTree {
|
||||||
|
|
||||||
|
public class Node{
|
||||||
|
int pass;
|
||||||
|
int end;
|
||||||
|
Node[] next;
|
||||||
|
|
||||||
|
public Node() {
|
||||||
|
this.pass = 0;
|
||||||
|
this.end = 0;
|
||||||
|
this.next = new Node[26];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Node root;
|
||||||
|
|
||||||
|
public TrieTree() {
|
||||||
|
this.root = new Node();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void insert(String word) {
|
||||||
|
if (word == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
char[] str = word.toCharArray();
|
||||||
|
int path;
|
||||||
|
Node node = this.root;
|
||||||
|
node.pass++;
|
||||||
|
for (int i = 0; i < str.length; i++) {
|
||||||
|
path = str[i] - 'a';
|
||||||
|
if (node.next[path] == null) {
|
||||||
|
node.next[path] = new Node();
|
||||||
|
}
|
||||||
|
node.pass++;
|
||||||
|
node = node.next[path];
|
||||||
|
}
|
||||||
|
node.end++;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void delete(String word) {
|
||||||
|
if (search(word) == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
char[] chars = word.toCharArray();
|
||||||
|
Node node = this.root;
|
||||||
|
node.pass--;
|
||||||
|
int path;
|
||||||
|
for (int i = 0; i < chars.length; i++) {
|
||||||
|
path = chars[i] - 'a';
|
||||||
|
if (--node.next[path].pass == 0) {
|
||||||
|
node.next[path] = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
node = node.next[path];
|
||||||
|
|
||||||
|
}
|
||||||
|
node.end--;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public int search(String word) {
|
||||||
|
if (word == null || "".equals(word.trim())) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
char[] chars = word.toCharArray();
|
||||||
|
Node node = this.root;
|
||||||
|
int path;
|
||||||
|
for (int i = 0; i < chars.length; i++) {
|
||||||
|
path = chars[i] - 'a';
|
||||||
|
if (node.next[path] == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
node = node.next[path];
|
||||||
|
}
|
||||||
|
return node.end;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int prefixNumber(String word) {
|
||||||
|
|
||||||
|
if (word == null || "".equals(word.trim())) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Node node = this.root;
|
||||||
|
char[] chars = word.toCharArray();
|
||||||
|
int path;
|
||||||
|
for (int i = 0; i < chars.length; i++) {
|
||||||
|
path = chars[i] - 'a';
|
||||||
|
if (node.next[path] == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
node = node.next[path];
|
||||||
|
}
|
||||||
|
|
||||||
|
return node.pass;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in new issue