关闭

UVA 409 Excuses, Excuses!

483人阅读 评论(0) 收藏 举报
分类:
题目大意:给定几个keywords,再给几个excuses,要求从中找出keywords最多的excuse。如果有几个excuse一样多,就都输出来。其中要求出现的keyword是有条件的:
  • If a keyword occurs more than once in an excuse, each occurrance is considered a separate incidence.
  • A keyword ``occurs" in an excuse if and only if it exists in the string in contiguous form and is delimited by the beginning or end of the line or any non-alphabetic character or a space.

所以其实就是在句子里面找单词。这个单词可以夹在非字母字符的中间,如:123what234。所以可以在句子里面搜索一个个的单词再去进行匹配。

#include<stdio.h>
#include<string.h>
#include<ctype.h>
char keywords[105][105];
char excuses[106][105],change[106][105];
int K,E;
int search(int t)
{
	int l=strlen(change[t]);
	char s[105];
	int j=0,k,num=0;
	for(int i=0;i<l;i++)
	{
		if(isalpha(change[t][i]))s[j++]=change[t][i];   //找到一个连续的单词,因为不连续的是不符合的。
		else {
			s[j]='\0';
			j=0;
			for(k=0;k<K;k++)
			if(strcmp(s,keywords[k])==0)num++;
		}
	}
	return num;
	
}
int main()
{
	int i,j,k,l,t[105],maxi,cases=0;
	
	while(scanf("%d%d",&K,&E)!=EOF)
	{
		maxi=0;cases++;
		memset(t,0,sizeof(t));
		for(i=0;i<K;i++)
		{
			scanf("%s",keywords[i]);
		}
			getchar();
		for(i=0;i<E;i++)
		{
			t[i]=0;
		
			gets(excuses[i]);
		
			for(k=0;k<strlen(excuses[i]);k++)
			{if(excuses[i][k]>='A'&&excuses[i][k]<='Z')
			change[i][k]=excuses[i][k]+32;
			else change[i][k]=excuses[i][k];}
			 t[i]=search(i);
			if(t[i]>maxi)maxi=t[i];
		}
		printf("Excuse Set #%d\n",cases);
		for(i=0;i<E;i++){
		//	printf("%s\n",change[i]);
		//	printf("%d\n",t[i]);
			if(maxi==t[i])printf("%s\n",excuses[i]);
		}
		printf("\n");
	}
	return 0;
}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Excuses, Excuses!(字符串查找)

Excuses, Excuses! Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submi...
  • u014361775
  • u014361775
  • 2014-12-04 09:14
  • 365

uva 409(字符串模拟)

不算难的题,就是有个小陷阱。先是告诉你几个关键词 (keywords)再告诉你几个“借口”(excuse)让你输出存在keyworld最多的excuse.excuse可以存在多组、#include#i...
  • u011366828
  • u011366828
  • 2013-07-15 17:34
  • 415

UVa 409 "借口,借口!"

/* * 解题思路: * 这是道非常坑爹的题目、开始一直Runtime error、不知道为什么、后来发现是再输入的时候 * My dog ate my homework. * Can you bel...
  • u011886588
  • u011886588
  • 2014-01-26 20:17
  • 670

uva 409借口 借口

Judge Ito is having a problem with people subpoenaed for jury duty giving rather lame excuses in ord...
  • xiaolei09bupt
  • xiaolei09bupt
  • 2014-11-25 16:48
  • 127

uva 409 WA!!!哪里错了?

//各位看看哪里不对。。。WA啊! #include #include int nkey; int nexc; char keywords[30][30]; char excuses[30][1...
  • EXLsunshine
  • EXLsunshine
  • 2013-04-25 17:24
  • 863

uva 409(字符串)

题目:
  • u013392752
  • u013392752
  • 2014-07-08 09:59
  • 465

jquery.form&jersey异步上传图片(SpringMVC版本)

目标异步上传图片到另外一台服务器开发环境 SpringMVC Jersey 开发依赖 jquery.js jquery.form.js jersey-client-1.18.1.jar 配置1、Spr...
  • saytime
  • saytime
  • 2016-05-15 11:02
  • 2472

xmpp学习使用简单介绍(一)

自己学习xmpp官方文档,慢慢整理的笔记,不见得都是正确的,请用选择性眼光看待,也有问题尚未解决,持续更新中~~~       创建新工程,命名为XMPPIOS.   ...
  • dztianyu
  • dztianyu
  • 2014-02-28 15:12
  • 904

习题4-8 特别困的学生 UVa12108

#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #define N 1000000 int n...
  • u014800748
  • u014800748
  • 2014-08-06 21:35
  • 1867

UVA-815 flooded!(白书说能锻炼思维的题)

题意挺长的,而且是英文的,我这里就简述一下吧,就是有m*n个格子,每个格子都是10*10的规格(高度是无限的),给出每个格子的海拔,然后给出一个洪水的量,输出最后水深度和完全被水覆盖的面积百分比。这个...
  • FishSeeker
  • FishSeeker
  • 2016-04-08 09:36
  • 950
    个人资料
    • 访问:106126次
    • 积分:3314
    • 等级:
    • 排名:第11819名
    • 原创:235篇
    • 转载:2篇
    • 译文:0篇
    • 评论:9条
    最新评论