版权声明:本人菜鸟一只,如文章有错误或您有高见,请不吝赐教 https://blog.csdn.net/qq_41138935/article/details/82694563
总长度减去两数组的重合部分(连续小于4的部分) 取最小值
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int MAX=105;
char a[MAX];
char b[MAX];
int lena,lenb;
int f(char *arrA,char *arrB,int n){
int sum=lena+lenb,Min=min(lena,lenb),len=sum;
int i,j;
for(i=0;i<n;i++){
bool flag=true;
int same=min(n-i,Min);
for(j=0;j<same;j++){
if(arrA[i+j]=='2'&&arrB[j]=='2'){
flag=false;
break;
}
}
if(flag&&len>sum-same)
len=sum-same;
}
return len;
}
int main(){
cin>>a;
cin>>b;
lena=strlen(a);
lenb=strlen(b);
cout<<min(f(a,b,lena),f(b,a,lenb));
return 0;
}