九度oj题目1165:字符串匹配
题目1165:字符串匹配
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:3078
解决:1079
- 题目描述:
-
读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号、匹配字符串。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。
- 输入:
-
输入有多组数据。
每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(不含空格),接下来输入一个匹配字符串。
- 输出:
-
输出匹配到的字符串的行号和该字符串(匹配时不区分大小写)。
- 样例输入:
-
4
Aab
a2B
ab
ABB
a[a2b]b
- 样例输出:
-
1 Aab
2 a2B
4 ABB
#include <cstdio>
#include <cstring>
#include <string>
#include <queue>
#include <stack>
#include <string>
#include <iostream>
using namespace std;
struct node{
string s1,s2;
};
node s[];
int main(){
//freopen("D:\\INPUT.txt","r",stdin);
int n;
while(scanf("%d",&n)!=EOF){
int i=,j;
for(;i<=n;i++){
cin>>s[i].s1;
s[i].s2=s[i].s1;
for(j=;j<s[i].s2.length();j++){//全部转换为小写
if(s[i].s2[j]>='A'&&s[i].s2[j]<='Z'){
s[i].s2[j]=s[i].s2[j]-'A'+'a';
}
} //cout<<i<<" "<<s[i].s2<<" "<<s[i].s1<<endl; }
string ss;
cin>>ss; //cout<<ss<<endl; for(j=;j<ss.length();j++){
if(ss[j]>='A'&&ss[j]<='Z'){
ss[j]=ss[j]-'A'+'a';
}
} //cout<<ss<<endl; for(i=;i<ss.length();i++){
if(ss[i]=='['){
break;
}
} //cout<<i<<endl; if(i==ss.length()){//没有中括号
for(i=;i<=n;i++){
if(ss==s[i].s2){
cout<<i<<" "<<s[i].s1<<endl;
}
}
}
else{
string s1,s2,s3,s4;
s1=ss.substr(,i); //cout<<s1<<endl; i++;
int k=i;
for(;ss[i]!=']';i++);
s2=ss.substr(k,i-k); //cout<<s2<<" "<<s2.length()<<endl; s3=ss.substr(i+); //cout<<s3<<endl; for(i=;i<s2.length();i++){
s4=s1+s2[i]+s3; //cout<<s4<<endl; for(j=;j<=n;j++){ //cout<<i<<" "<<s[i].s2<<endl; if(s4==s[j].s2){
cout<<j<<" "<<s[j].s1<<endl;
}
}
}
}
}
return ;
}
九度oj题目1165:字符串匹配的更多相关文章
- 九度oj题目&吉大考研11年机试题全解
九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码). http://ac.jobdu.com/problem.php?pid=11 ...
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
- hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 九度oj 题目1007:奥运排序问题
九度oj 题目1007:奥运排序问题 恢复 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...
- 九度OJ题目1105:字符串的反码
tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度oj题目1009:二叉搜索树
题目描述: 判断两序列是否为同一二叉搜索树序列 输入: 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...
- 九度oj题目1002:Grading
//不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...
- 九度OJ题目1003:A+B
while(cin>>str1>>str2)就行了,多简单,不得不吐槽,九度的OJ真奇葩 题目描述: 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号", ...
随机推荐
- C#生成静态文件
一般生成文件都是通过读取模板文件,然后替换标签. 这些古老的方法使用起来不但麻烦而且效率还不怎么样. 这里给添加介绍一个方法. 如果你用过asp.net.mvc (Razor),你就应该明白 chtm ...
- SSH的三个组件ssh、sftp、scp介绍
SSH 包含3个组件 (1) ssh 远程登录节点 : ssh 用户名@IP地址 ① 不允许空密码或错误密码认证登录 ② 不允许root用户登录 ③ 有两个版本 ssh,ssh2安全性更高 (2) ...
- ubuntu14.04,安装Chrome(谷歌浏览器)
Linux:ubuntu14.04 一直都很喜欢谷歌浏览器,进入linux怎么能没有? 安装方法:谷歌浏览器官方下载的ubuntu版本,下载后点击即可安装. 下载地址:http://download. ...
- 20165219 学习基础与C语言基础调查
学习基础与C语言基础调查 你有什么技能比大多数人要好? 因为不知道其他人的具体情况,我只能说,我比较擅长钢琴,素描,国画,这也是小时候掌握的比较好的技能. 针对这个技能的获取有什么成功的经验 小时候学 ...
- 【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛
Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0. 给定正整数a,b, ...
- centos6.3安装 jdk-8u131-linux-x64.gz
解压指令为:tar -zxvf jdk-8u131-linux-x64.gz 设置环境变量,首先是打开设置环境变量的文件夹,指令为:vi /etc/profile 然后在英文输入法下切换到“插 ...
- P2561 [AHOI2002]黑白瓷砖
$ \color{#0066ff}{ 题目描述 }$ \(\color{#0066ff}{输入格式}\) 文件中以一行的形式存放一个正整数 n , n ≤ 20 . \(\color{#0066ff} ...
- 20165224 陆艺杰 Exp5 MSF基础应用
用自己的话解释什么是exploit,payload,encode Exploit是攻击的行为 Payload是一段植入目标机的简短的带功能的恶意代码 Encode是编码,用于更改恶意代码,编码特征码检 ...
- NFS服务器的搭建与使用,实现数据同步
NFS的基本架构,如下图所示: NFS服务是基本RPC协议的,所以安装NFS的前提要安装RPC协议,就像java语言一定要基于jdk一样! 下面的搭建centos-1作为服务端模拟A服务器,cento ...
- ansible基本模块-copy
ansible XXX -m copy -a “src=XXX dest=XXX owner=root group=root mode=0755”