题目描述:算法竞赛入门经典习题3-11
题目思路:1.两长条移动匹配
2.上下调换,取小者
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char s1[105],s2[105] ; while(gets(s1)){ gets(s2) ; int len1 = strlen(s1); int len2 = strlen(s2); int i,j ; for(i=0;i<len1;i++){ int flag = 1; for(j=0;j<len2 && j+i<len1;j++) if(s1[i+j] == '2' && s2[j] == '2') { flag = 0 ;break ;} if(flag) break; } int rq1 =len2+i ; //printf("%d ",len1+len2 -(len1 - i)) ; for(i=0;i<len2;i++){ int flag = 1; for(j=0;j<len1 && j+i<len2;j++) if(s1[i+j] == '2' && s2[j] == '2') { flag = 0 ;break ;} if(flag) break; } int rq2 = len1+i ; printf("%d ",rq1>rq2?rq1:rq2) ; } return 0; }