2008--2009年北京航空航天大学计算机研究生机试真题
http://ac.jobdu.com/problem.php?pid=1165 字符串匹配
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;char str[1005][500],temp[1005][500],pattern[1005];inline bool pre_match(int j,int start,int end)
{int i;for(i=start;i<=end;i++){if(temp[j][i]!=pattern[i])return false;}return true;
}
inline bool middle_match(int j,int start,int end)
{int i;for(i=start+1;i<end;i++){if(temp[j][start]==pattern[i])return true;}return false;
}
inline bool post_match(int j,int start,int end)
{int i,p;for(i=start+1,p=end+1;temp[j][i]!='\0' && pattern[p]!='\0' ;i++,p++){if(temp[j][i]!=pattern[p])return false;}return true;
}
int main(void)
{int i,j,n,st,en;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++){scanf("%s",str[i]);strcpy(temp[i],str[i]);}for(i=0;i<n;i++){for(j=0;temp[i][j]!='\0';j++){if(temp[i][j]>='a') //将字符串中的字符全部转换为大写,数字则不变temp[i][j]-=32;}}scanf("%s",pattern);st=en=-1;for(i=0;pattern[i]!='\0';i++){if(pattern[i]>='a')pattern[i]-=32;if(pattern[i]=='[')st=i;else if(pattern[i]==']')en=i;}if(st==-1) //不存在中括号表示的模式匹配{for(i=0;i<n;i++){if(strcmp(temp[i],pattern)==0){printf("%d %s\n",i+1,str[i]);break;}}}else{for(i=0;i<n;i++){if(strlen(str[i]) != strlen(pattern) - (en - st) )continue;if(pre_match(i,0,st-1) && middle_match(i,st,en) && post_match(i,st,en)) //前缀、中间、后缀分别都匹配{printf("%d %s\n",i+1,str[i]);}}}}return 0;
}
http://ac.jobdu.com/problem.php?pid=1168 字符串的查找删除
#include<iostream>
#include<cstdio>
using namespace std;
#include<string.h>char str[1000][1000],s[1000];
int slen;bool match(int j,int len,int index)
{int i,p;for(i=j,p=0;i<j+len && p<slen;i++,p++){if(s[p]!=str[index][i]){if(s[p]-str[index][i]!=32 && str[index][i]-s[p]!=32) //大小写不敏感return false;}}return true;
}int main(void)
{int i,j,n=0,len;//freopen("a.txt","w",stdout);scanf("%s",s);slen=strlen(s);getchar();while(gets(str[n])){if(strcmp(str[n],"}")==0)break;n++;}for(i=0;i<=n;i++){len=strlen(str[i]);for(j=0;j<=len-slen;j++){if(str[i][j]==' ')continue;if(!match(j,slen,i)) //不匹配的话直接输出printf("%c",str[i][j]);else //匹配的话直接跳过,不输出j=j+slen-1;}for(;j<len;j++)printf("%c",str[i][j]);printf("\n");}return 0;
}
2008--2009年北京航空航天大学计算机研究生机试真题相关推荐
- 素数 [2008年北京航空航天大学计算机研究生机试真题]
题目描述: 输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1. 输入描述: 输入有多组数据. 每组一行,输入 ...
- 题目1163:素数 2008年北京航空航天大学计算机研究生机试真题
格式原因,所以先存储,再打印 #include <stdio.h> #include <math.h> bool judge(int n) {int i,j,k;int a[1 ...
- 素数判定 [2009年哈尔滨工业大学计算机研究生机试真题]
题目描述: 给定一个数n,要求判断其是否为素数(0,1,负数都是非素数). 输入描述: 测试数据有多组,每组输入一个数n. 输出描述: 对于每组输入,若是素数则输出yes,否则输入no. 样例输入: ...
- 最大公约数 [2011年哈尔滨工业大学计算机研究生机试真题]
题目描述> 输入两个正整数,求其最大公约数. 输入描述: 测试数据有多组,每组输入两个正整数. 输出描述: 对于每组输入,请输出其最大公约数. 样例输入: 49 14 样例输出: 7 解题思路: ...
- 211大学计算机复试不机试,复试机试之上海交通大学计算机研究生机试真题.doc...
复试机试之上海交通大学计算机研究生机试真题 (你自己回去改格式啊,这个有多重繁杂字体,你自己改好看点~~还有知识05年到11年的)复试机试之2011年上海交通大学计算机研究生机试真题 (2012-02 ...
- 2000年华中科技大学计算机研究生机试真题 对称矩阵
题目1180:对称矩阵 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2518 解决:1295 题目描述: 输入一个N维矩阵,判断是否对称. 输入: 输入第一行包括一个数:N(1<= ...
- 上海交大研究生计算机考研真题,2011年上海交通大学计算机研究生机试真题
Oracle 约束(constraint)的几个参数的小研究 ORACLE中,约束分deferred 跟 immediate 2种: deferred:如果 Oracle 在事务提交(commit)时 ...
- 2008年清华大学计算机研究生机试真题
http://ac.jobdu.com/problem.php?pid=1080 进制转换 当然这个题目如果使用大数模板来做的话,也是可以AC的,话说我第一次就是用大数模板AC的,然后又改用了下面这 ...
- 进制转换 [2008年北京大学图形实验室计算机研究生机试真题]
题目描述: 求任意两个不同进制非负整数的转换(2进制-16进制),所给整数在long所能表达的范围之内. 不同进制的表示符号为(0,1,-,9,a,b,-,f)或者(0,1,-,9,A,B,-,F). ...
最新文章
- 【c语言】蓝桥杯基础练习 特殊回文数
- ALSA声卡笔记3--ASoC驱动重要结构体关系图
- Ubuntu 将应用程序 固定到快快速启动栏(以Sublime为例)
- linux 无线 网桥,基于Linux无线网桥及无线网络设备驱动分析与研究
- php停车场计时收费软件,城市街道停车计时收费系统 路边停车收费软件
- 修改Cocos2d-X-3.2中的setup.py, 使其能用python3
- 说说自己写PHP框架的一些感受
- 删除某个字段_Android中Room的使用4_删除一个字段
- Maven安装配置操作方法
- Centos7系列各版本镜像合集下载
- android 播放器封装,Android 播放器二次封装与实现
- 土豆课外科技学习历程兼参加机器人大赛小记
- MapReduce的C#实现及单元测试(试验)
- 新版白话空间统计(25):方向分布(标准差椭圆)
- 手机虚拟服务器app,手机远程控制服务器的app
- 【video frame interpolation系列1】背景知识: forward and backward image warping (图像扭曲/变换)
- 前端面试中的自我介绍
- java 实现图片旋转_java实现图片旋转
- 跨境电商人才如何筛选精准关键词 提高产品曝光率
- 某电影网站信息的爬取【干货】