UVa 409 - Excuses, Excuses!
2012-03-27 00:30
399 查看
写的很繁琐。
/* */
# include <stdio.h> # include <ctype.h> # define MAX_WORD_LEN 25 # define MAX_LINE_LEN 75 # define MAXN 25 char keyw[MAXN][MAX_WORD_LEN]; char line[MAXN][MAX_LINE_LEN]; char copy[MAX_LINE_LEN]; int cnt[MAXN]; int key_cnt(char *line, int len, char *keyword); int main() { int i, j, k, e, len, max, T; T = 0; while (~scanf("%d%d", &k, &e)) { ++T; getchar(); for (i = 0; i < k; ++i) gets(keyw[i]); for (i = 0; i < e; ++i) gets(line[i]); for (max = i = 0; i < e; ++i) { cnt[i] = 0; len = strlen(line[i]); strcpy(copy, line[i]); for (j = 0; j < len; ++j) if (isalpha(copy[j])) copy[j] = tolower(copy[j]); for (j = 0; j < k; ++j) cnt[i] += key_cnt(copy, len, keyw[j]); if (cnt[i] > max) max = cnt[i]; } printf("Excuse Set #%d\n", T); for (i = 0; i < e; ++i) if (cnt[i] == max) puts(line[i]); printf("\n", max); memset(cnt, 0, sizeof(cnt)); } return 0; } int key_cnt(char *line , int len, char *keyword) { int cnt, lenKey; char *p, *tmp; cnt = 0; lenKey = strlen(keyword); p = line; while (p-line < len) { tmp = strstr(p, keyword); if (tmp == NULL) break; else if (tmp==line || tmp+lenKey==line+len-1 || (!isalpha(*(tmp-1))&&!isalpha(*(tmp+lenKey)))) ++cnt; p = tmp + lenKey; } return cnt; }
/* */
相关文章推荐
- UVA 409 (暑假-字符串(2) -B - Excuses, Excuses!)
- UVA-409 Excuses, Excuses!
- UVa 409 - Excuses, Excuses!
- UVA 题目409 - Excuses, Excuses!
- UVA409 - Excuses, Excuses!
- UVA 409 Excuses, Excuses!
- UVA - 409 Excuses, Excuses!
- Uva 409 Excuses, Excuses!
- UVa-409-Excuses, Excuses!
- uva 409 Excuses, Excuses!
- UVA - 409 Excuses, Excuses!
- UVA 409 Excuses, Excuses!
- UVa 409 - Excuses, Excuses!
- UVa-409-Excuses, Excuses!
- UVa:409 - Excuses, Excuses!
- UVA 409 - Excuses, Excuses!
- Excuses, Excuses! - UVa 409 哈希字符串
- Uva 409-Excuses, Excuses!(串)
- UVA409 Excuses, Excuses!解题报告
- HDU 1606(POJ 1598 UVA 409) Excuses, Excuses!(字符串匹配处理)