/*********************************
* 日期:2013-1-29
* 作者:SJF0115
* 题号: 九度1165
* 题目:字符串匹配
* 来源:http://ac.jobdu.com/problem.php?pid=1165
* 结果:AC
* 题意:
* 总结:1.如果匹配串中没有[],直接用strcmp比较
2.如果匹配串中有[],先匹配[]前后字符串,再匹配[]中字符串
**********************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char c[1001][1001],temp[1001][1001],c2[1001];//temp转换为小写后的数组
//匹配串中没有[]
void allMatch(int n){
for(int i = 0;i < n;i++){
if(strcmp(temp[i],c2) == 0){
printf("%d %s\n",i+1,c[i]);
}
}
}
//匹配串中有[]
int Match(int start,int end,int n,int index){
int i,j,k;
//[]前匹配
for(i = 0,k = 0;i < strlen(c[index]) && k < start;i++,k++){
if(temp[index][i] != c2[k]){
return 0;
}
}
//[]后匹配
for(j = i + 1,k = end + 1;j < strlen(c[index]) && k < strlen(c2);j++,k++){
if(temp[index][j] != c2[k]){
return 0;
}
}
if(j < strlen(c[index]) || k < strlen(c2)){
return 0;
}
//[]中匹配
for(j = start + 1;j < end;j++){
if(c2[j] == temp[index][i]){
return 1;
}
}
return 0;
}
int main()
{
int n,i,j,len;
//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
while(scanf("%d",&n)!=EOF)
{
//输入数据
for(i = 0;i < n;i++){
scanf("%s",c[i]);
len = strlen(c[i]);
//全部转换成小写便于匹配
for(j = 0;j < len;j++){
if(c[i][j] >= 'A' && c[i][j] <= 'Z'){
temp[i][j] = c[i][j] - 'A' + 'a';
}
else{
temp[i][j] = c[i][j];
}
}
}
//输入匹配串
scanf("%s",c2);
//全部转换成小写便于匹配,找[]下标
int start = -1,end = -1;
for(i = 0;i < strlen(c2);i++){
if(c2[i] == '['){
start = i;
}
else if(c2[i] == ']'){
end = i;
}
if(c2[i] >= 'A' && c2[i] <= 'Z'){
c2[i] = c2[i] - 'A' + 'a';
}
}
//start = -1:匹配串中没有[]
if(start == -1){
allMatch(n);
}
else{
for(i = 0;i < n;i++){
if(Match(start,end,n,i)){
printf("%d %s\n",i+1,c[i]);
}
}
}
}
return 0;
}
分享到:
相关推荐
九度oj 题目1369:字符串的排列 剑指offer里面的题目 自己写的代码,供参考!
使用vs2010编写,直接用vs2010打开加压后的.sln文件即可看到...九度OJ上面的剑指Offer习题全套答案,全部AC,且具有较好的时间复杂度。部分参考网络上的idea,但代码已经尽量要求简洁,是OJ练习不可多得的参考代码。
九度智能seo优化软件是一款针对搜索引擎的点击类软件。软件适用于百度、谷歌、360搜索、搜狗、搜搜、淘宝、天猫等等搜索引擎,可以用来提高...绝对是专业人士必备的seo优化软件,您值得拥有! 九度智能seo优化软件截图
完整可以用在二次开发,节约时间成本,
由于九度搜索点击软件完全模仿人的自然行为进行点击,所以软件工作时,占用一台电脑,在挂机的同时,不能干其他的事情。建议在闲暇时挂机,或有多余的电脑挂机,也可以在自己的电脑上,安装虚拟机,在虚拟机上运行...
这是九度OJ-题目1509:树中两个结点的最低公共祖先的测试数据,input.txt是输入数据,output.txt是输出数据。
由于九度搜索点击软件完全模仿人的自然行为进行点击,所以软件工作时,占用一台电脑,在挂机的同时,不能干其他的事情。建议在闲暇时挂机,或有多余的电脑挂机,也可以在自己的电脑上,安装虚拟机,在虚拟机上运行...
九度 ACM 很好的九度 ACM解题报告 不错 大家可以下下来看看 九度内推
九度OJ八皇后问题,主要是主对角线和副对角线的判断上面优化。在九度1140上面已经AC
资源分享者,资源爱好者,我是浪杉,点我资料关注,每日不定时分享全网优质源码!
ZJU考研机试真题 九度1006ZOJ问题
九度智能SEO优化软件是九度搜索引擎点击优化软件重新开发版,本是针对搜索引擎的SEO优化类软件,2016年10月正式上线。软件可像真人点击一样,自动点击百度、谷歌、360搜索、搜狗、搜搜、淘宝、天猫等搜索引擎内的...
九度求职经验系列之“实习生”篇.pdf 讲述了九度求职经验相关内容
由于九度搜索点击软件完全模仿人的自然行为进行点击,所以软件工作时,占用一台电脑,在挂机的同 时,不能干其他的事情。建议在闲暇时挂机,或有多余的电脑挂机,也可以在自己的电脑上,安装虚拟机,在虚拟机上运行...
九度算法实现EXCEL排序 Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果...
ZJU考研机试真题 九度1004Median
ThinkPhp个人真是没研究明白,有懂行的技术过硬的可以下载看看,如果好用就赚了。
计算机机试指南九度OJ机试题目解析复试机试参考,适用于计算机考研的同学,文档整理汇总了各个分类,方便入门和刷题参考。
conn.asp 数据连接修改,站点名称和网址 del.asp 数据删除页,密码在文件里面修改 xg.mdb 数据库