如果电话号码A是另一个电话号码B的前缀,则无法呼叫B. 例如,A是123而B是12345,按123后,我们调用A,不能调用B.
给定N个电话号码,您的任务是找出是否存在两个数字A和B,即A是B的前缀。
输入:
每个测试用例中的第一行输入包含一个整数N(0 <N <1001),表示电话号码的数量。
下一行包含N个整数,描述电话号码。
最后一种情况后面是一行包含一个零。
输出:
对于每个测试用例,如果出现无法呼叫的电话号码,则打印“否”,否则打印“是”。
int main(){
int n;
while(scanf("%d",&n)!=EOF)
{
if(n!=0)
{
char phone[n][100];
int flag=0;
for(int i=0;i<n;i++)
{
scanf("%s",phone[i]);
}
for(int i=0;i<n;i++)
{
if(flag) break;
for(int j=i+1;j<n;j++)
{
if((strstr(phone[i],phone[j])-phone[i]==0)||(strstr(phone[j],phone[i])-phone[j])==0)
{
printf("NO\n");
flag=1;
break;
}
}
}
if(!flag)
{
printf("YES\n");
}
next:;
}
}
return 0;
}