本文主要是介绍sdut2151 Phone Number,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用trie树做的#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct node{bool set;node *next[10];node(){set=0;memset(next,NULL,sizeof(next));}
};
char a[1010];
bool flag=0;
void insert(char str[],node *root){node *p=root;int i=0,cur;while(str[i]){cur=str[i]-'0';if(p->next[cur]==NULL)p->next[cur]=new node();p=p->next[cur];if(p->set==1)flag=1;i++;}for(i=0;i<10;i++)if(p->next[i]!=NULL)flag=1;p->set=1;
}
int main(){int n;while(scanf("%d",&n)&&n!=0){flag=0;node *root=new node();while(n--){scanf("%s",a);insert(a,root);}if(flag)printf("NO\n");elseprintf("YES\n");}return 0;
} /**************************************Problem id : SDUT OJ 2151 Result : Accepted Take Memory : 748K Take Time : 0MS Submit Time : 2013-05-18 23:10:18
**************************************/
这篇关于sdut2151 Phone Number的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!