首页 > 试题广场 >

字符串匹配

[编程题]字符串匹配
  • 热度指数:12895 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号、匹配字符串。匹配时不区分大小写,并且可以有多个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。

输入描述:
输入有多组数据。
每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(不含空格),接下来输入一个匹配字符串。


输出描述:
输出匹配到的字符串的行号和该字符串(匹配时不区分大小写)。
示例1

输入

4
Aab
a2B
ab
ABB
a[a2b]b

输出

1 Aab
2 a2B
4 ABB
头像 Coming680
发表于 2022-01-26 11:13:24
#include<iostream> #include<vector> using namespace std; void trans(string &str) { //全部转换为小写 for (int i = 0; i < str.size() 展开全文
头像 位琬续
发表于 2021-03-02 10:39:23
思路:(1)使用普通的字符串匹配方式;(2)遇到括号时单独匹配;(3)每次记录匹配开始的位置; // c++代码如下 #include <iostream> using namespace std; const int sub1 = 'a'-'A',sub2 = 'A'-'a'; // 展开全文
头像 立志实干
发表于 2021-03-03 21:57:54
///////////////////////////////////////////////////////////////////////////////////////////////////// //这儿的题怎么都这么错综复杂,你敢信,这题可以有很多[],多损啊 ////////////// 展开全文
头像 极巨化花椒
发表于 2022-02-07 13:48:48
对KMP算法做一些修改,在对[...]内的字符比较这里定义新的比较函数 #include <iostream> #include <string> #include <cstring> #include <vector> using namespac 展开全文
头像 子非鱼_zy
发表于 2022-03-03 14:53:12
使用re正则表达式来做 import re while True: try: n = input() ss = [] for i in range(eval(n)): ss.append(input()) 展开全文
头像 酒香核闲鱼
发表于 2024-01-21 13:30:00
改进型KMP // E4-6 字符串匹配 #include <iostream> #include <string> #include <vector> #include <cmath> using namespace std; int Next 展开全文
头像 CyberAoao
发表于 2023-03-28 20:36:12
#include<bits/stdc++.h> using namespace std; void toLower(string &s) { for (int i = 0; i < s.size(); i++) { s[i] = tolower(s[i]); } retu 展开全文
头像 philos
发表于 2021-03-15 10:28:20
思路 谈起字符串匹配,想到啥,KMP 算法,但是这里用可能不太合适,所以简单地用双指针遍历就好了,一个指针指向字符串,一个指向带有中括号的字符串,但是还是建议对 KMP 不熟悉地同学去复习一下 遇到中括号就观察中括号里面有没有对应的字符,没的话返回 false,有的话比较下一个字符 不是中括号就直 展开全文
头像 HeB
发表于 2024-03-27 14:03:38
#include<stdio.h> #include<string> #include<iostream> #include<vector> using namespace std; bool find(vector<char>v,cha 展开全文
头像 咸鱼精英
发表于 2023-02-07 18:41:55
#include <cmath> #include <iostream> #include <math.h> using namespace std; /* 最笨的办法暴力求解QvQ []内单独做循环比较,[]外直接比较 */ //不区分大小写的字符比较 bool 展开全文