트리 데이터 구조에 대한 Striver 설명
class Node{ Node [] node = new Node[26]; boolean flag; public Node(){ } public boolean containsKey(char c){ return node[c-'a']!=null; } public void put(char c, Node n){ node[c-'a'] = n; } public Node get(char c){ return node[c-'a']; } public void setFlag() { this.flag = true; } public boolean getFlag(){ return this.flag; } } class 트라이 { Node root; public 트라이() { root = new Node(); } //will take tc : O(len) of the word public void insert(String word) { Node node = root; for(int i =0;i<word.length if node.put node node.setflag take tc : o of the word public boolean search for i="0;i<word.length();i++){" return false node.getflag prefix startswith true your object will be instantiated and called as such: obj="new" obj.insert param_2="obj.search(word);" param_3="obj.startsWith(prefix);"> <h2> 트라이 데이터 구조 II </h2> <p>이해를 돕기 위한 striver의 설명<br> </p> <pre class="brush:php;toolbar:false">import java.util.* ; import java.io.*; class Node { Node node[] = new Node[26]; int endWith = 0;// will keep track of no. of words ending with this word int countPrefix=0;// will keep track of no. of words starting with this word public Node(){ } public boolean containsKey(char c){ return node[c-'a']!=null; } public void put(char c, Node n){ node[c-'a'] = n; } public Node get(char c){ return node[c-'a']; } public void incrementCountPrefix() { ++this.countPrefix; } public void decrementCountPrefix(){ --this.countPrefix; } public void incrementEndWith(){ ++this.endWith; } public void deleteEndWith(){ --this.endWith; } public int getCountPrefix(){ return this.countPrefix; } public int getEndWith(){ return this.endWith; } } public class 트라이 { Node root; public 트라이() { // Write your code here. root = new Node(); } public void insert(String word) { Node node = root; for(int i =0;i<word.length if node.put node node.incrementcountprefix node.incrementendwith public int countwordsequalto word write your code here. for i="0;i<word.length();i++){" else return node.getendwith will tell how many strings are with given countwordsstartingwith node.getcountprefix it starting void erase node.decrementcountprefix node.deleteendwith> <h2> 완전한 문자열 </h2> <pre class="brush:php;toolbar:false">// tc : O(n*l) import java.util.* ; import java.io.*; class Node{ Node[] node = new Node[26]; boolean flag; public Node(){} public void put(char c , Node n){ node[c-'a'] = n; } public boolean containsKey(char c){ return node[c-'a']!=null; } public Node get(char c){ return node[c-'a']; } public void setEnd(){ this.flag = true; } public boolean isEnd(){ return this.flag; } } class 트라이{ Node root; public 트라이(){ root = new Node(); } public boolean checkIfPrefixPresent(String s){ Node node = root; boolean flag= true; for(int i = 0;i<s.length char c="s.charAt(i);" if return false node="node.get(c);" flag="flag" node.isend this will check the substring is also a string from list of strings line work here because any not present as in trie then s won be complete and we can only public void insert for i="0;i<s.length();i++){" node.put new node.setend setting end current class solution static root completestring n all data structure : trie.insert out comeplete among s.length selection a.compareto b lexographically else s.compareto completestring.equals> <h2> 개별 하위 문자열 계산 </h2> <p>Tc: O(n^2) <br>에 다른 고유 하위 문자열을 삽입하는 경우 트라이 데이터 구조<br> </p> <pre class="brush:php;toolbar:false"> import java.util.ArrayList; public class Solution { Node root; static int count; public Solution(){ root = new Node(); } public static int countDistinctSubstrings(String s) { count = 0; // Write your code here. Solution sol = new Solution(); for(int i =0;i
위 내용은 트라이의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!