电话号码
来源:互联网 发布:网站源码授权破解 编辑:程序博客网 时间:2024/04/27 23:48
题目描述
我们知道一个电话号码A是另一个电话号码B的前缀,B是不能被拨打的。
举个例子,A是123,B是12345。当按下123后我们是给A打电话而不是给B。
给出N个电话号码,你的任务是找出是否存在两个号码A和B,满足A是B的前缀。
我们知道一个电话号码A是另一个电话号码B的前缀,B是不能被拨打的。
举个例子,A是123,B是12345。当按下123后我们是给A打电话而不是给B。
给出N个电话号码,你的任务是找出是否存在两个号码A和B,满足A是B的前缀。
输入
输入由几组数据组成。
每一组的第一行有一个整数N (0<N<1001),表示电话号码的数量。
接下来的N行,每行是一个电话号码。
测试数据以一个0结束。
输入由几组数据组成。
每一组的第一行有一个整数N (0<N<1001),表示电话号码的数量。
接下来的N行,每行是一个电话号码。
测试数据以一个0结束。
输出
对于每组测试数据,如果存在一个电话号码不能被拨打,输出“NO”,否则输出“YES”。
对于每组测试数据,如果存在一个电话号码不能被拨打,输出“NO”,否则输出“YES”。
样例输入
2
012
012345
2
12
012345
0
2
012
012345
2
12
012345
0
样例输出
NO
YES
NO
YES
#include<stdio.h>
#include<math.h>
struct pe//采用结构体来进行字符串之间的比较例如:1 1 2 5 3 7 统计这组数据中的每个数字出现的次数
{
char number[1000];
int sum;
};
int main()
{
int a,i,l=0,k,j,h=0,m;
while(scanf("%d",&a)!=EOF)
{
if(a==0) break;
l=0;//每次循环清零
#include<math.h>
struct pe//采用结构体来进行字符串之间的比较例如:1 1 2 5 3 7 统计这组数据中的每个数字出现的次数
{
char number[1000];
int sum;
};
int main()
{
int a,i,l=0,k,j,h=0,m;
while(scanf("%d",&a)!=EOF)
{
if(a==0) break;
l=0;//每次循环清零
struct pe s[1000];
for(i=0; i<a; i++)
{
s[i].sum=0;
scanf("%s",s[i].number);
s[i].sum=strlen(s[i].number);//定义 次数 字符串出现的
}
for(i=0; i<a; i++)
{
for(i=0; i<a; i++)
{
s[i].sum=0;
scanf("%s",s[i].number);
s[i].sum=strlen(s[i].number);//定义 次数 字符串出现的
}
for(i=0; i<a; i++)
{
for(j=i+1; j<a; j++)
{
h=0;
if(s[i].sum>s[j].sum)
{
for(k=0; k<s[j].sum; k++)
{
if(s[i].number[k]==s[j].number[k])
{
h++;//判断两个字符串中的相同个数
}
}
if(h==s[j].sum)
{
l++;//判断这一串字符串中有字符串相同
}
{
h=0;
if(s[i].sum>s[j].sum)
{
for(k=0; k<s[j].sum; k++)
{
if(s[i].number[k]==s[j].number[k])
{
h++;//判断两个字符串中的相同个数
}
}
if(h==s[j].sum)
{
l++;//判断这一串字符串中有字符串相同
}
}
else
{
for(k=0; k<s[i].sum; k++)
{
if(s[i].number[k]==s[j].number[k])
{
h++;
}
}
if(h==s[i].sum)//注意:如s[i].sum它的字符串长度与自己输入的字符串的长度一致。
{
l++;
}
else
{
for(k=0; k<s[i].sum; k++)
{
if(s[i].number[k]==s[j].number[k])
{
h++;
}
}
if(h==s[i].sum)//注意:如s[i].sum它的字符串长度与自己输入的字符串的长度一致。
{
l++;
}
}
}
}
if(l>0)//如果输入的这几个字符串中,有几个相等的。如果相等就输出no
{
printf("NO\n");
}
else
{
printf("YES\n");
}
}
return 0;
}
}
}
if(l>0)//如果输入的这几个字符串中,有几个相等的。如果相等就输出no
{
printf("NO\n");
}
else
{
printf("YES\n");
}
}
return 0;
}
阅读全文