背景:1——WA:很难想到还有如下情况(见图),认真读题后发现!!!
思路:就是吧两个部件所有重合情况都考虑了,取其中满足的最小长度。
学习:1.'1'+'2'='3'是错误的!!!!!!!!!#include<stdio.h>
#include<string.h>
int make(char a[],char b[],int ha, int hb);
int make(char a[],char b[],int ha,int hb){
int ans=ha+hb;
char temp[300];
memset(temp,'\0',sizeof(temp));
for(int i=hb;i<hb+ha;i++){
temp[i]=a[i-hb];
}
for(int i=0;i<ha+hb;i++){
bool ok=false;
for(int j=i;j<hb+i;j++){
if(temp[j]+b[j-i]>'1'+'2'){
ok=true;
break;
}
}
if(!ok){
if(i<hb) ans=ha+hb-i;
else if(i>=hb&&i<ha) ans=ha;
else if(i<ans) ans=i;
}
}
return ans;
}
int main(void){
char a[105],b[105];
while(scanf("%s %s",a,b)==2){
int ha=strlen(a),hb=strlen(b);
int ans;
if(ha>=hb) ans=make(a,b,ha,hb);
else ans=make(b,a,hb,ha);
printf("%d\n",ans);
}
return 0;
}