标签:
Regionals 2006 >> Europe - Northeastern
问题链接:UVA1588 UVALive3712 POJ3158 Kickdown。基础训练级的问题,用C语言编写程序。
问题简述:(略)。
这个问题需要注意的是两个字符串哪个在左边都有可能。
程序中,循环控制条件需要小心处理。
/* UVA1588 UVALive3712 POJ3158 Kickdown */ #include <stdio.h> #include <string.h> #define MIN(x, y) (((x)>(y))?(y):(x)) #define MAXN 100 char s[MAXN], t[MAXN]; int main(void) { int slen, tlen, ans1, ans2, i, j; while(scanf("%s", s) != EOF) { scanf("%s", t); slen = strlen(s); tlen = strlen(t); /* s left, t right */ for(i=0; i<slen; i++) { for(j=0; j<tlen && i+j<slen; j++) { if(s[i+j] == '2' && t[j] == '2') break; } if(j == tlen || i+j == slen) break; } ans1 = i + tlen; if(ans1 < slen) ans1 = slen; /* t left, s right */ for(j=0; j<tlen; j++) { for(i=0; i<slen && j+i<tlen; i++) { if(t[j+i] == '2' && s[i] == '2') break; } if(i == slen || j+i == tlen) break; } ans2 = j + slen; if(ans2 < tlen) ans2 = tlen; printf("%d\n", MIN(ans1, ans2)); } return 0; }
UVA1588 UVALive3712 POJ3158 Kickdown
标签:
原文地址:http://blog.csdn.net/tigerisland45/article/details/52089786