前缀字符串
来源:互联网 发布:手机便签软件 编辑:程序博客网 时间:2024/04/28 17:37
Description
如果一个字符串s1是由另一个字符串s2的前面部分连续字符组成的,那么我们就说s1就是s2的前缀。比如“ac”是“acm”的前缀,“abcd”是“abcddfasf”的前缀,特别的“kdfa”是“kdfa”的前缀。现在给你一些字符串,你的任务就是从这些字符串中找出一些字符串放到一个集合中,使得这个集合中任意一个字符串不是其他字符串的前缀,并且要使集合里的字符串尽可能的多。输出这个集合中字符串的个数。
Input
有多组测试数据。每组测试数据以一个整数n开头,随后有n个字符串。当n=0时表示输入结束。0<100,字符串长度不大于20fieldset=""<="">
Output
每组测试数据输出一个整数,即所求的最大值。每组数据占一行。
Sample Input
6acmyuouyuoufsdafacmmmdfacmmfdsf0
Sample Output
3
</N<100,字符串长度不大于20>
#include <iostream>
#include<cstring>
using namespace std;
int main()
{
char s[100][20];
int n,i,j,k,count;
while(cin>>n&&n!=0)
{
count=0;
for(i=0;i<n;i++)
cin>>s[i];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==i) continue;
if(s[j][0]=='1') continue;
bool f=true;
int len=strlen(s[i]);
for(k=0;k<len;k++)
{
if(s[j][k]=='1') {f=false ;break;}
if(s[i][k]!=s[j][k]){f=false ;break;}
}
if(f)
s[i][0]='1';
}
}
for(i=0;i<n;i++)
if(s[i][0]!='1') count++;
cout<<count<<endl;
}
}
- 前缀字符串
- 前缀字符串
- 字符串最长前缀
- swustoj前缀字符串(0185)
- 字符串前缀,真前缀,后缀,真后缀,及前缀函数
- Unicode 字符串,用 N 前缀
- 字符串的前缀和后缀
- hdu 1251 字符串前缀 子典树
- KMP与周期字符串前缀
- 字符串数组最长公共前缀
- 带L前缀的字符串字面常量
- 求一个字符串中的最长回文前缀
- 字符串匹配算法 最长前缀后缀法
- 字符串数组的最长公共前缀
- 14.一组字符串的最长公共前缀
- python中unicode字符串前缀u
- POJ2001 -- 字典树和字符串的前缀
- hdu5311 Hidden String dp找字符串前缀
- 选数
- 莫尔斯码
- 设置密码!
- bingshen’s problem
- 消灭老鼠
- 前缀字符串
- 购物清单
- 整数
- A luck number
- Yale开放课程博弈论15
- Satellite Photographs
- 合并果子
- 亲密数
- 大整数加法