https://leetcode.com/problems/implement-trie-prefix-tree/
1. c클래스 초기화 방법
private: int a, int arr[30]
public : className() : a(0), arr() {}
암기할것
2. 트라이 복습
1. 자식배열을 가진다. Trie* child[26]
2. 새로운 자식할당은 new Trie로 한다.
자식할당시 cur->child[c-'a'] = new Trie()
암기할것
class Trie {
private:
int isEnd;
Trie* child[26];
public:
Trie() : child(),isEnd(0) {} //초기화방법 암기할것
void insert(string word) {
Trie* cur=this;
for(auto c : word){
if(cur->child[c-'a']==nullptr){
cur->child[c-'a']=new Trie(); //자식할당!
}
cur=cur->child[c-'a'];
}
cur->isEnd=1;
}
bool search(string word) {
Trie* cur=this;
for(auto c : word){
if(cur->child[c-'a']==nullptr){
return false;
}
cur=cur->child[c-'a'];
}
return cur->isEnd;
}
bool startsWith(string prefix) {
Trie* cur=this;
for(auto c : prefix){
if(cur->child[c-'a']==nullptr){
return false;
}
cur=cur->child[c-'a'];
}
return true;
}
};
/**
* Your Trie object will be instantiated and called as such:
* Trie* obj = new Trie();
* obj->insert(word);
* bool param_2 = obj->search(word);
* bool param_3 = obj->startsWith(prefix);
*/
'Algorithm > 트라이' 카테고리의 다른 글
리트코드 211 c++ // 트라이 와일드카드 종결, 재귀vs길이별 트라이 (0) | 2024.05.19 |
---|---|
백준 5670 c++ 휴대폰자판 // 트라이 자식수, 소수점출력방법, mx설정방법 (0) | 2024.05.07 |
프로그래머스 가사검색 c++ // 정석트라이, 단어 길이별 트라이, 접미사 구하는법, 한계 (0) | 2024.05.03 |
프로그래머스 자동완성 c++ // 트라이, 자동완성 결정방법 (0) | 2024.05.02 |
백준 5052 전화번호 목록 c++ // 트라이, 서로 접두어검사, 입력값은 모두받아야함 (0) | 2024.05.02 |