字符串-409 - Excuses, Excuses!
2016-07-23 14:08
351 查看
题目大意:自动检测烂借口,根据关键词判断哪些理由是蹩脚的借口:关键词出现得越多,说明借口越蹩脚,输出最烂的借口
解题过程:2次compiler error,因为使用了strlwr()函数,不是标准C库函数,只在VC中可以用,但是DEV_C++通过了。。改成tolower()函数后,一次AC
正确代码:
解题过程:2次compiler error,因为使用了strlwr()函数,不是标准C库函数,只在VC中可以用,但是DEV_C++通过了。。改成tolower()函数后,一次AC
正确代码:
# include <cstdio> # include <ctime> # include <cmath> # include <iostream> # include <fstream> # include <cstring> # include <ctype.h> # include <cstdlib> # include <string> #define fin cin #define fout cout using namespace std; //ifstream fin("in.txt"); //ofstream fout("out.txt"); struct excuse0{ char origine[100]; char word[70][20]; int numofkey,numofword; }; char keyword[20][20]; excuse0 excuse[20]; int cmp(const void* a,const void * b){ return (*(excuse0*)b).numofkey - (*(excuse0*)a).numofkey; } int getkeyword(char (* keyword)[20],excuse0 excuse,int k){ int num=0; for(int i=0;i<k;i++){ for(int j=0;j<excuse.numofword;j++){ if(strcmp(keyword[i],excuse.word[j])==0) num++; } } return num; } void reverse(char * word){ for(int i=0;i<strlen(word);i++){ word[i]=tolower(word[i]); } } int main() { int k,e,numofset=0; char temp[100]; while(fin>>k>>e){ numofset++; for(int i=0;i<k;i++){ fin>>keyword[i]; } fin.getline(temp,100); for(int i=0;i<e;i++){ fin.getline(temp,100); strcpy(excuse[i].origine,temp); // strlwr(temp); excuse[i].numofkey=excuse[i].numofword=0; int j,m; for(j=0;j<strlen(temp);j++){ if(isalpha(temp[j])){ for(m=j;m<strlen(temp);m++){ if(!isalpha(temp[m])) break; } strncpy(excuse[i].word[excuse[i].numofword],temp+j,m-j); excuse[i].word[excuse[i].numofword][m-j]='\0'; excuse[i].numofword++; } } //* for(j=0;j<excuse[i].numofword;j++){ reverse(excuse[i].word[j]); }//*/ } for(int i=0;i<e;i++){ excuse[i].numofkey=getkeyword(keyword,excuse[i],k); } qsort(excuse,e,sizeof(excuse[0]),cmp); int max=excuse[0].numofkey; fout<<"Excuse Set #"<<numofset<<endl; for(int i=0;i<e;i++){ if(excuse[i].numofkey<max) break; fout<<excuse[i].origine<<endl; } fout<<endl; } return 0; }
相关文章推荐
- yii2读写分离配置
- H5用FormData对象提交表单及上传文件
- Android 自定义绘制开关按钮
- html表格参考
- win10系统中启动Edge浏览器带命令行参数
- oracle遇到问题整理
- Android6.0的phone应用源码分析(2)——phone相关进程启动分析
- Android渲染器Shader:LinearGradient(一)
- 字符串(扩展KMP):HDU 4333 Revolving Digits
- Android渲染器Shader:LinearGradient(一)
- 随笔
- 基于MVC+EasyUI的Web开发框架经验总结(13)--DataGrid控件实现自动适应宽带高度
- 常用的最完全的正则表达式
- C99布尔类型
- 有趣的死循环
- 0-1背包问题的分枝—限界算法
- Contains Duplicate II
- php 获取昨天 今天 明天的时间
- Hadoop集群的配置
- hibernate的一对一映射-外键映射-双向-mysql数据库