链接:点击打开链接
判断一个是否字符串是另一个的前缀。最多8个字符串,最少两个,纯暴力,说好的字典树了。
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
using namespace std;
char a[10][10];
int main(){
int i,j,k,num,m,len1,len2,flag,x;
i=0;
x=1;
while(~scanf("%s",&a[i])){
if(a[i][0]=='9'){
for(j=0,flag=1;j<i-1;j++){
len1=strlen(a[j]);
for(k=j+1;k<i;k++){
len2=strlen(a[k]);
len2=len1>len2?len2:len1;
for(m=0,num=0;m<len2;m++)
if(a[j][m]!=a[k][m])
num=1;
if(num==0)
flag=0;
}
}
if(flag==1)
printf("Set %d is immediately decodable\n",x);
else
printf("Set %d is not immediately decodable\n",x);
i=0;
x++;
}
i++;
}
}