解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
int long_best=0,n;
int * shu_zu, * zhefuc_size;
char * * zhifuc;
int jie_long(int long_wei,int jie)
{
int cd,cds,k,fc;
(zhefuc_size[long_wei]>zhefuc_size[jie]) ? (cd=zhefuc_size[jie]):(cd=zhefuc_size[long_wei]);
k=cd-1;
for(;k>0;k--)
{
cds=k; fc=0;
while(cds>0)
{
if(zhifuc[long_wei][zhefuc_size[long_wei]-cds]!=zhifuc[jie][fc])
{break;}
else{ cds--; fc++;}
}
if(cds==0)break;
}
return k;
}
void pin_long(int long_chan,int long_wei)
{
int i,kfc=0,jj=0;
for(i=0;i<n;i++)
{
if(shu_zu[i]>0)
{
kfc=jie_long(long_wei,i);
if(kfc)
{ shu_zu[i]--;
pin_long(long_chan+zhefuc_size[i]-kfc,i);
shu_zu[i]++;
jj++;
}
}
}
if(jj==0){ if(long_chan>long_best)long_best=long_chan; }
}
void main()
{
int i,long_chan;
char k;
scanf("%d",&n);
shu_zu=(int *)malloc(sizeof(int)*n);
zhifuc=(char **)malloc(sizeof(char *)*n);
zhefuc_size=(int *)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{ zhifuc[i]=malloc(sizeof(char)*100);
scanf("%s",zhifuc[i]);
shu_zu[i]=2;
zhefuc_size[i]=strlen(zhifuc[i]);
}
scanf("\n%c",&k);
for(i=0;i<n;i++)
{
if(zhifuc[i][0]==k)
{
long_chan=zhefuc_size[i];
shu_zu[i]--;
pin_long(long_chan,i);
shu_zu[i]++;
}
}
printf("%d\n",long_best);
}
0.0分
0 人评分
【偶数求和】 (C++代码)浏览:702 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1100 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:885 |
输出正反三角形 (C语言代码)浏览:780 |
WU-蓝桥杯算法提高VIP-Quadratic Equation (C++代码)浏览:1742 |
【简单计算】 (C语言代码)浏览:622 |
用筛法求之N内的素数。 (C语言代码)浏览:802 |
蛇行矩阵 (C语言代码)浏览:524 |
震宇大神的杀毒软件 (C语言代码)浏览:1079 |
模拟计算器 (C语言代码)浏览:2292 |