九度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#backgroundWorker
private void button1_Click(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); } priva ...
- arp欺骗进行流量截获-2
上一篇讲了原理,那么这一篇主要讲如何实现.基本上也就是实现上面的两个步骤,这里基于gopacket实现,我会带着大家一步步详细把每个步骤都讲到. ARP 欺骗 首先就是伪造ARP请求,让A和B把数据包 ...
- redis可视化辅助工具
安装链接: http://docs.redisdesktop.com/en/latest/quick-start/ 图标
- day5学python 基础+装饰器内容
基础+装饰器内容 递归特性# 1.必须有一个明确的结束条件# 2.每次进入更深一层递归时,问题规模相比上次递归应有所减少# 3.递归效率不高 def run(n): print(n) if int(n ...
- myeclipse2014 安装maven3.3.9和maven配置本地仓库 及错误修改
结合网上的知识梳理以及自己安装的经验 myeclipse2014 安装maven3.3.9和maven配置本地仓库 及犯的错误修改 成功搞定maven 1,安装 Maven 之前要求先确定你的 J ...
- model中的Meta类
通过一个内嵌类 "class Meta" 给你的 model 定义元数据, 类似下面这样: class Foo(models.Model): bar = models.CharFi ...
- VS2010 UAC执行级别修改
配置属性 -> 链接器 -> 清单文件 -> UAC执行级别 改为 requireAdministrator 这个级别即可.
- P2410 [SDOI2009]最优图像 ZKW最大费用最大流
$ \color{#0066ff}{ 题目描述 }$ 小E在好友小W的家中发现一幅神奇的图画,对此颇有兴趣.它可以被看做一个包含N×M个像素的黑白图像,为了方便起见,我们用0表示白色像素,1表示黑色像 ...
- Android WebView的使用(用来显示网页)
1.WebView介绍 2.URL介绍 简单说就是网址. 3.java后台代码 package com.lucky.test34webview; import android.support.v7.a ...
- bzoj3261: 最大异或和 (可持久化trie树)
题目链接 题解 看到异或和最大就应该想到01 trie树 我们记\(S_i\)为前i项的异或和 那么我们的目的是最大化\(S_n\)^\(x\)^\(S_{j-1}\) \((l <= j &l ...