从头到尾扫两边即可
1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 char a[105],b[105]; 5 int aa[105],bb[105]; 6 int la,lb,ans; 7 bool flag; 8 void fuc(int a[],int b[],int la,int lb) 9 { 10 int tmp=0; 11 int i,j,k; 12 i=j=k=0; 13 while(i<la&&j<lb) 14 { 15 if(a[i]+b[j]<=3) i++,j++; 16 else 17 { 18 k++; 19 i=k; 20 j=0; 21 } 22 } 23 tmp=la+lb-j; 24 ans=min(tmp,ans); 25 } 26 int main() 27 { 28 while(cin>>a>>b) 29 { 30 ans=200; 31 la=strlen(a); 32 lb=strlen(b); 33 for(int i=0;i<la;i++) aa[i]=a[i]-'0'; 34 for(int j=0;j<lb;j++) bb[j]=b[j]-'0'; 35 fuc(aa,bb,la,lb); 36 fuc(bb,aa,lb,la); 37 cout<<ans<<endl; 38 } 39 }