您的位置:首页 > 职场人生

方正面试的题-找出字符串最多的分解方法

2011-09-18 21:55 281 查看
有长度m(>3)的字符串M,另有n个3个字符长度的子字符串,可以是重叠的,(如123,231,),

分解字符串M,搜索与子字符串一样的字符串个数,并找出最多的分解方法。

#include<iostream>

using namespace std;

char m[100][4];

char b[1000];

int c[997];

int strcpy1(char *s1,char *s)

{

int i,j,count=0,count1=0,k;

int flag[3]={0};

for(i=1;i<=strlen(s)/3;i++)

{

for(k=(i-1)*3;k<i*3;k++)

{

for(j=0;j<strlen(s1);j++)

{

if(s[k]==s1[j]&&!flag[j])

{

break;

}

}

if(j<strlen(s1))

count++;

}

if(count==3)

{

memset(flag,0,3);

count=0;

count1+=1;

}

else

{

count=0;

}

}

return count1;

}

int main()

{

int n,i,j,max=0,m1=0;

cin>>n;

for(i=0;i<n;i++)

cin>>m[i];

cin>>b;

for(j=0;j<strlen(b)-3;j++)

{

for(i=0;i<n;i++)

{

m1+=strcpy1(m[i],b+j);

}

if(m1>max)

{

max=m1;

}

m1=0;

}

cout<<max<<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: