UVA - 409 Excuses, Excuses!
2016-08-20 01:42
387 查看
UVA - 409 Excuses, Excuses!
逻辑依旧乱……题目大意:给关键字列表和句子,输出出现关键字次数最多的句子。(大概?)不区分大小写。
解题思路:关键字存一个数组,句子存一个数组。一个字符串用来保存句子中每一个单词并全转化为小写。将这个字符串和关键字组匹配,找到就计数器++。计数器是开了一个与句子个数相同的数组,为了方便同时保存下标和关键字出现次数。输出的时候先找出最高出现次数,之后再找和其次数一样的下标。
#include<cstdio> #include<iostream> #include<cstring> #include<ctype.h> using namespace std; int main() { int k , e , n = 0 , cal , i , j ,l , m ,max, max2; char key[20][20] , tem[75] , exc[20][75]; int nom[20]; while(~scanf("%d%d",&k,&e)){ getchar(); n++; for( i = 0; i < k ; i++) cin >> key[i]; getchar(); for( i = 0; i < e ; i++) { cin.getline( exc[i] , 75); } memset( nom , 0 , 20 ); for( i = 0; i < e; i++) { max2 = 0; for( j = 0, l = 0; j <strlen(exc[i]) ; j++ ) { if( isalpha( exc[i][j] ) ) { tem[l] = exc[i][j]; tem[l] = tolower(tem[l]); l++; } else { tem[l] = '\0'; l = 0; for( m = 0; m < k ; m++) { if(!strcmp( tem , key[m])) max2++; } nom[i] = max2; } } } max = nom[0];cal = 0; for( m = 0; m < e ; m++ ) { if( nom[m] > max ) {max = nom[m]; cal = m; } } cout<<"Excuse Set #"<< n << endl << exc[cal]<< endl; for( m = 0 ; m < e ; m++ ) if( nom[m] == max && m != cal) cout << exc[m]<< endl; cout << endl; } return 0; }
相关文章推荐
- UVa 409 - Excuses, Excuses!
- UVa 409 - Excuses, Excuses!
- UVA 409 - Excuses, Excuses!(字符串)
- uva 409 - Excuses, Excuses!
- UVa-409-Excuses, Excuses!
- UVa 409 Excuses, Excuses!
- HDU 1606(POJ 1598 UVA 409) Excuses, Excuses!(字符串匹配处理)
- uva 409 Excuses, Excuses!(字符串模拟)
- UVA409 - 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!