hdu1671Phone List
1938 단어 사전 트 리
일반 사전 트 리 를 만 들 고 flag 로 표시 하 며 메모리 공간 방출 에 주의 하 십시오.
#include
#include
#include
#include
using namespace std;
typedef struct node{
int flag;
struct node *next[10];
}Trie;
void insertTrie(Trie *root,char *c){
if(root==NULL&&*c=='\0')
return;
Trie *p = root;
while(*c!='\0'){
if(p->next[*c-'0']==NULL){
Trie *q = (Trie*)malloc(sizeof(Trie));
q->flag=0;
for(int i=0;i<10;i++){
q->next[i]=NULL;
}
p->next[*c-'0']=q;
p=p->next[*c-'0'];
}else{
p=p->next[*c-'0'];
}
c++;
}
p->flag=1;
}
int searchTrie(Trie *root,char *c){
Trie *p = root;
while(*c!='\0'){
if(p->flag==1){// flag 1
return 0;
}else{
if(p->next[*c-'0']!=NULL){
p=p->next[*c-'0'];
}else{
return 0;
}
}
c++;
}
return 1;
}
void del(Trie *root){//
for(int i=0;i<10;i++){
if(root->next[i]!=NULL)
del(root->next[i]);
}
free(root);
}
int main(){
int t;
int k;
char phone[10050][15];
int cnt = 0;
int n;
scanf("%d",&t);
while(t--){
Trie *root = (Trie*)malloc(sizeof(Trie));
root->flag=0;
for(int i=0;i<10;i++){
root->next[i]=NULL;
}
cnt=0;
scanf("%d",&n);
while(n--){
scanf("%s",phone[cnt]);
insertTrie(root,phone[cnt]);
cnt++;
}
int i;
for(i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
poj2630Phone List (정적 트 라이 트 리)이 문 제 는 항 저 우 전기 1671 과 마찬가지 로 - > 자세 한 내용 은 여 기 를 찌 르 세 요 < - 그래서 1671 의 코드 로 한 통 을 제출 했 는데 결국 TLE 가 되 었 습 니 다.과감하게 정적 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.