理解提议后很简单,从头开始找,第一个匹配嵌合的就是最短的了。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char s[105], t[105];
int len1, len2, len;
while(cin>>s>>t)
{
int i, j, x, y;
int len1 = strlen(s), len2 = strlen(t);
for( i=0; i<len1; i++ )
{
bool flag = true;
for( j=0; j<len2 && j+i<len1 ; j++ )
if(s[i+j]=='2'&&t[j]=='2')
{flag = false; break;}
if(flag)
break;
}
x = max(len1, len2+i);
i = j = 0;
for( i=0; i<len2; i++ )
{
bool flag = true;
for( j=0; j<len1 && j+i<len2; j++ )
if(t[i+j]=='2'&&s[j]=='2')
{flag = false; break ;}
if(flag)
break;
}
y = max(len2, len1+i);
cout<<min(x,y)<<endl;
}
return 0;
}
博客提到理解提议后,寻找最短匹配嵌合的方法是从头开始找,第一个匹配嵌合的即为最短的。

被折叠的 条评论
为什么被折叠?



