我用这种方法,提交了好几次,还是不通过,希望能有大牛指点!!! 你会么???
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
using namespace std;
int getCommonStrLength(char *pFirstStr,char *pSecondStr)
{
if(strlen(pFirstStr)==0||strlen(pSecondStr)==0)
return 0;
string str1,str2;
int i=0,j=0;
while(pFirstStr[i++]!='\0')
{
if(isupper(pFirstStr[i]))
pFirstStr[i]=tolower(pFirstStr[i]);
str1+=pFirstStr[i];
}
i=0;
while(pSecondStr[i++]!='\0')
{
if(isupper(pSecondStr[i]))
pSecondStr[i]=tolower(pSecondStr[i]);
str2+=pSecondStr[i];
}
int len=str1.length();
int maxLen=0;
int strLen=0;
for(i=0;i<len;i++)
for(j=i;j<len;j++)
{
string strtmp=str1.substr(i,j);
int index=str2.find(strtmp);
if(index!=string::npos)
{
strLen=j-i+1;
if(strLen>maxLen)
maxLen=strLen;
}
}
return maxLen;
}
int main(int argc,char *argv[])
{
//freopen("input.txt","r",stdin);
char ch1[1005]={'\0'},ch2[1005]={'\0'};
scanf("%s%s",ch1,ch2);
//printf("%s %d\n%s %d\n",ch1,strlen(ch1),ch2,strlen(ch2));
printf("%d\n",getCommonStrLength(ch1,ch2));
return 0;
}