Sdut 2151 Phone Numbers (山东省ACM第一届省赛题 A)
题目描述
We know thatif a phone number A is another phone number B’s prefix, B is not able to becalled. For an example, A is 123 while B is 12345, after pressing 123, we callA, and not able to call B.
Given N phone numbers, your task is to find whether there exits two numbers Aand B that A is B’sprefix.
输入
The input consists of several test cases.
The first line of input in each test case contains one integer N (0<N<1001),represent the number of phone numbers.
The next line contains N integers, describing the phonenumbers.
The last case is followed by a line containing one zero.
输出
For each test case, if there exits a phone number thatcannot be called, print “NO”, otherwise print “YES” instead.
示例输入
2
012
012345
2
12
012345
0
示例输出
NO
YES
/*********************
N个字符串中如果有一个是另外一个的前缀,则输出NO,否则输出YES。
O(n^2)的循环,
*********************/
Code:
#include <iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
int main()
{
char str[1005][1005];
char s[1005];
int n,i,j,li,lj;
bool leaf;
while(scanf("%d",&n)&&n)
{
leaf = false;
li = lj = 0;
for(i = 0;i<n;i++)
cin>>str[i];
for(i = 0;i<n;i++)
{
li = strlen(str[i]);
for(j = 0;j<n;j++)
{
lj = strlen(str[j]);
if(i==j||li>lj)//自己不和自己比较,str[j] 长度比str[i]短的话肯定不是前缀。
continue;
strncpy(s,str[j],li);
s[li] = '\0';
if(strcmp(s,str[i])==0)// 发现前缀则跳出循环
{
leaf = true;
break;
}
}
if(leaf)
break;
}
if(leaf)
printf("NO\n");
else
printf("YES\n");
}
return 0;
}
Sdut 2151 Phone Numbers (山东省ACM第一届省赛题 A)的更多相关文章
- ACM Sdut 2158 Hello World!(数学题,排序) (山东省ACM第一届省赛C题)
题目描述 We know thatIvan gives Saya three problems to solve (Problem F), and this is the firstproblem. ...
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
Binomial Coeffcients TimeLimit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 输入 输出 示例输入 1 1 10 2 9 ...
- Sdut 2165 Crack Mathmen(数论)(山东省ACM第二届省赛E 题)
Crack Mathmen TimeLimit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Since mathmen take security ...
- 河南省acm第九届省赛--《表达式求值》--栈和后缀表达式的变形--手速题
表达式求值 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 假设表达式定义为:1. 一个十进制的正整数 X 是一个表达式.2. 如果 X 和 Y 是 表达式,则 X+Y, ...
- sdut 2159:Ivan comes again!(第一届山东省省赛原题,STL之set使用)
Ivan comes again! Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 The Fairy Ivan gave Say ...
- Greatest Number 山东省第一届省赛
Greatest Number Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Saya likes math, because ...
- 山东第一届省赛1001 Phone Number(字典树)
Phone Number Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 We know that if a phone numb ...
- 山东省第六届省赛 BIGZHUGOD and His Friends II(赛瓦定理)
Description BIGZHUGOD and his three friends are playing a game in a triangle ground. The number of B ...
- 山东省第七届省赛 D题:Swiss-system tournament(归并排序)
Description A Swiss-system tournament is a tournament which uses a non-elimination format. The first ...
随机推荐
- vijosP1629 八
vijosP1629 八 链接:https://vijos.org/p/1629 [思路] 暴力容斥(看他们都这么叫=_=)+精度选择. 总体思路是先统计LR区间内满足是8倍数的数目ans,再从ans ...
- PC-修改IE 与 禁止修改IE
1.注册表编辑器1.1在Windows启动后1.2点击“开始”1.3“运行”菜单项1.4在“打开”栏中键入“regedit”1.5然后按“确定”键 2.首页项2.1展开注册表到“HKEY_LOCAL_ ...
- C语言中可变参数的用法
原文地址: http://blog.csdn.net/wooin/archive/2006/04/29/697106.aspx 我们在C语言编程中会遇到一些参数个数可变的函数,例如printf() ...
- mysql调优 基础
MySQL调优可以从几个方面来做: 1. 架构层:做从库,实现读写分离: 2.系统层次:增加内存:给磁盘做raid0或者raid5以增加磁盘的读写速度:可以重新挂载磁盘,并加上noatime参数,这样 ...
- 一步一步学android控件(之二十五)—— SeekBar
SeekBar扩展自ProgressBar——在ProgressBar的基础上添加了一个用户可以拖拽的thum. SeekBar.OnSeekBarChangeListener是接收SeekBar进度 ...
- GitHub简历
My GitHub Résumé可以帮你生成一份github简历,你只需要输入你的github用户名.
- iOS中二维码的生成与使用(入门篇)
这里简单总结一下关于二维码的扫描与生成,用的是原生的AVFoundation框架,其实这个框架目前功能还是够用的,不过这里推荐一个二维码扫描的第三方(face++),网址就不贴了,直接度娘就OK,里面 ...
- KDB调试内核
http://www.ibm.com/developerworks/cn/linux/l-kdbug/
- /dev/tty 与 /dev/pts
打开3个bash会话窗口 [root@server1 fd]# cd /proc/7489/fd[root@server1 fd]# ll总用量 0lrwx------ 1 root root 6 ...
- lua function
This is the main reference for the World of Warcraft Lua Runtime. Note that these are mostly standar ...