思路:模拟题 注意下标i+j 和j的对应字符串的匹配关系 注意要模拟从最左边到最右边
刚开始做莫名其妙WA,检查不出错误,后面重写了才过的
AC代码:
#include<cstring>
#include<iostream>
#include<cstdio>
using namespace std;
char s1[105],s2[105]; //用字符串读方便
int main(){
while(cin>>s1>>s2){
int a=strlen(s1),b=strlen(s2);
int chongdie=0;
int minnum=10000000;
if(a<b){
char temp[105];
memcpy(temp,s1,sizeof(s1));
memcpy(s1,s2,sizeof(s1));
memcpy(s2,temp,sizeof(s1));
a=strlen(s1);
b=strlen(s2);
}
for(int i=-b;i<=a;i++){
int flag=0;
for(int j=0;j<b;j++){
if(j+i>=0&&i+j<a){
if(s1[j+i]+s2[j]-'0'>'3'){
flag=1;
break;
}
}
}
if(!flag&&i<0){
minnum=min(-i+a,minnum);
}
else if(!flag&&i>a-b){
minnum=min(i+b,minnum);
}
else if(!flag&&i>=0&&i<=a-b){ //此时为最小值
chongdie=1;
break;
}
}
if(chongdie)printf("%d\n",a);
else printf("%d\n",minnum);
}
return 0;
}