C++ 带有通配符*与?的字符串匹配
题目:两个字符串,一个是普通字符串,另一个含有*和?通配符,*代表零个到多个任意字符,?代表一个任意字符,通配符可能多次出现。写一个算法,比较两个字符串是否相等。
发现许多公司笔试面试都有这道题目,于是自己搜了一下,从redis源码util.c源文件中可以找到这么一个函数,实际上glib中也有类似的实现
int stringmatch(const char *pattern, const char *string, int nocase) {
return stringmatchlen(pattern,strlen(pattern),string,strlen(string),nocase)
}
stringmatch可以满足上述题目的要求
#include <iostream>
#include <string.h>
using namespace std; int stringmatchlen(const char *pattern, int patternLen,
const char *string, int stringLen, int nocase)
{
while(patternLen) {
switch(pattern[]) {
case '*':
while (pattern[] == '*') {
pattern++;
patternLen--;
}
if (patternLen == )
return ; /** match */
while(stringLen) {
if (stringmatchlen(pattern+, patternLen-,
string, stringLen, nocase))
return ; /** match */
string++;
stringLen--;
}
return ; /** no match */
break;
case '?':
if (stringLen == )
return ; /** no match */
string++;
stringLen--;
break;
case '[':
{
int inot, match; pattern++;
patternLen--;
inot = pattern[] == '^';
if (inot) {
pattern++;
patternLen--;
}
match = ;
while() {
if (pattern[] == '\\') {
pattern++;
patternLen--;
if (pattern[] == string[])
match = ;
} else if (pattern[] == ']') {
break;
} else if (patternLen == ) {
pattern--;
patternLen++;
break;
} else if (pattern[] == '-' && patternLen >= ) {
int start = pattern[];
int end = pattern[];
int c = string[];
if (start > end) {
int t = start;
start = end;
end = t;
}
if (nocase) {
start = tolower(start);
end = tolower(end);
c = tolower(c);
}
pattern += ;
patternLen -= ;
if (c >= start && c <= end)
match = ;
} else {
if (!nocase) {
if (pattern[] == string[])
match = ;
} else {
if (tolower((int)pattern[]) == tolower((int)string[]))
match = ;
}
}
pattern++;
patternLen--;
}
if (inot)
match = !match;
if (!match)
return ; /** no match */
string++;
stringLen--;
break;
}
case '\\':
if (patternLen >= ) {
pattern++;
patternLen--;
}
/** fall through */
default:
if (!nocase) {
if (pattern[] != string[])
return ; /** no match */
} else {
if (tolower((int)pattern[]) != tolower((int)string[]))
return ; /** no match */
}
string++;
stringLen--;
break;
}
pattern++;
patternLen--;
if (stringLen == ) {
while(*pattern == '*') {
pattern++;
patternLen--;
}
break;
}
}
if (patternLen == && stringLen == )
return ;
return ;
} int stringmatch(const char *pattern, const char *string, int nocase) {
return stringmatchlen(pattern,strlen(pattern),string,strlen(string),nocase);
}
int main(int argc, const char *argv[])
{
char s1[],s2[];
while ( cin>>s1>>s2) {
if(stringmatch(s1,s2,true){
std::cout << "yes" << std::endl;
}else{
std::cout << "no" << std::endl;
} }
return ;
}
测试截图
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqUAAAGICAIAAAD3YA4QAAAgAElEQVR4nKy793NkWZbfV3+BInamyxfKd7Wp6h6GyFBIoSC5WlKz1GopLjXShHZJ7i53p3tcd0+7qkIZVMEmTALIBJDeJzIT6b333nvvvfcWQHX1KKQfXgKF7p6lGKHN+MSLZ+6775rzzveee1+eY8mMWJpgA4Z/ugj+5WcPr7/9YObu/Wt33r92+72rt9+9euvdK7feuXLzlHuXb7x96frdizN3Ll67ffHa7QvXbl+4duvCtdsXZ25fnLlz6frdS9ffvnTj7cvf4d7lG/cu37x35ea9KzffuXLrnau33j3N7fKNty/duHvp+t1L1+9emrlzysWZOxev3bpw9eb5Kzfeunz9DDfOX711cebOpRtvX775ztXb7127c3/m7QfX7314496HN9758MY7P7kJ8O5Pbr77T77HjXd+cuPeT66//eHM3Q+v3fng6u0HV24+uHzj/qXr71+cee/C1ffOX333wpT3Llx77+LM+5evv3/lxv2rtx5cvf3g2u0HM3cezNx9cO3O+1dvvXfl5jtnG+TC1VsXrgHcvvCmcW5duHbr/ElFfnxp5q3L19+6cuP81ZsXrk0rcuXmO1dvv3f19nvX7rx/7c77M3fv/2GAfjntlFvvXL317tXb7129/f61u0AjfAC0wI3TFnjnJzfe+fDGOx/euPfB9bcfzNwFcjhtfKDlz7b57QvTZgcKfOOty9ffunR9WuYrN85fvXn+6s0LV2/9sLJTG5i5c+n6nYszdy7O3L44c/tsJ07rfvnGW1dunr9688LMnUs37l259e7VO/ev3L5/5fb9y7cfXLr14OLN++dv3H9r5v0fXXvvx9fe+/HM+z/krZn3z19///yN+xdu3L906/7l2/ev3nlw7e6Da3fuX7vz/tXb7129dWK9Zw341invAlz9BzhJ8M6ZHO5dvnlvasw37n3Htm/cu3Jz2hfX7twH+gLojmtv3796973Ld965ePvtC7fvnr91+62bt3584+aPb9586+att27eOn/z9oVbdy7evnvp9r3Ld965cve9a2/fn7n3YNprJ2Z8pgfvX7vz3tVb7165ee/y6Ytz/e5Jy785BLryjeFdnvnxpZnvmN/VWxeu3bp47fZFoOu/z+3v5fDWSQ4/vjTz1uUbF67eujhz5zLQ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" alt="" />
C++ 带有通配符*与?的字符串匹配的更多相关文章
- COJN 0558 800600带通配符的字符串匹配
800600带通配符的字符串匹配 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 通配符是一类键盘字符,当我们不知道真正字符或者 ...
- openjudge6252 带通配符的字符串匹配
描述 通配符是一类键盘字符,当我们不知道真正字符或者不想键入完整名字时,常常使用通配符代替一个或多个真正字符.通配符有问号(?)和星号(*)等,其中,“?”可以代替一个字符,而“*”可以代替零个或多个 ...
- 【noi 2.6_6252】带通配符的字符串匹配(DP)
题意:给出一个带有通配符("?"可以代替一个字符,"*"可以代替零个或多个字符)的a字符串和一个不带通配符的b字符串,判断他们是否能够匹配. 解法:f[i][j ...
- python实现 字符串匹配函数
通配符是 shell 命令中的重要功能,? 表示匹配任意 1 个字符,*表示匹配 0 个或多个字符.请使用你熟悉的编程语言实现一个字符串匹配函数,支持 ? 和 * 通配符.如 "a?cd*d ...
- FFT字符串匹配
本文半原创 参考资料:其实就是照抄的什么参考啊 我们知道KMP可以用来在线性复杂度内进行制胡窜匹配 今天教您一种新方法:用FFT进行字符串匹配 您可能觉得这很玄学,FFT不是做多项式卷积的吗,怎么还可 ...
- CF528D Fuzzy Search 字符串匹配+FFT
题意: DNA序列,在母串s中匹配模式串t,对于s中每个位置i,只要s[i-k]到s[i+k]中有c就认为匹配了c.求有多少个位置匹配了t. 分析: 这个字符串匹配的方式,什么kmp,各种自动机都不灵 ...
- leetcode笔记 动态规划在字符串匹配中的应用
目录 leetcode笔记 动态规划在字符串匹配中的应用 0 参考文献 1. [10. Regular Expression Matching] 1.1 题目 1.2 思路 && 解题 ...
- KMP字符串匹配 模板 洛谷 P3375
KMP字符串匹配 模板 洛谷 P3375 题意 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next.(如果 ...
- Luogu P4173 残缺的字符串-FFT在字符串匹配中的应用
P4173 残缺的字符串 FFT在字符串匹配中的应用. 能解决大概这种问题: 给定长度为\(m\)的A串,长度为\(n\)的B串.问A串在B串中的匹配数 我们设一个函数(下标从\(0\)开始) \(C ...
- 字符串匹配的KMP算法
~~~摘录 来源:阮一峰~~~ 字符串匹配是计算机的基本任务之一. 举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDABD”? 许 ...
随机推荐
- Docker Swarm学习教程
原创作品,转载请注明出处:点我 Swarm介绍 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机 ...
- PostgreSQL 配置远程访问
配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf. pg_hba.conf:配置对数据库的访问权限, postgr ...
- C51寄存器详解(Reg51.h)
Reg51.h 这个头文件将C程序中能用到的寄存器名或寄存器中某位的名称与硬件地址值做了对应,在程序中直接写出这些名称,集成开发环境就能识别,并最终转换成机器代码,实现对单片机各硬件资源的准确操控. ...
- Linux 串口编程
今天对应用层串口编程进行了验证.程序来源于以下参考链接,自己进行了一些注释和更改,记录于此. Tony Liu, 2016-6-17, Shenzhen 参考链接 https://www.ibm.co ...
- 【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)
http://www.lydsy.com/JudgeOnline/problem.php?id=1004 学习了下polya计数和burnside引理,最好的资料就是:<Pólya 计数法的应用 ...
- 让rm命令提示确认后再删除
首先在~/.bashrc文件中添加一行: # User specific aliases and functionsalias rm='rm -i' 注意,此处 rm 和 = 之间不能有空格,否则会有 ...
- 自己制作一个链表用来存储列表信息,并查找当前id信息,找上一条信息,下一条信息(信息浏览的时候方便使用)
偶然看到某些网站在新闻详情中 ,往往是需要根据当前信息id获取到上一条信息和下一条信息的,而通常我们的做法是先获取当前信息,再获取上一条信息,再获取下一条信息,就需要发送三次查询才能够得到这些信息,一 ...
- Java Tomcat 启动闪屏-原因之一---配置问题
如Tomcat启动异常,首先确保Java安装和Tomcat安装版本是否对应,环境变量是否配置正确,如检查通过后,依然启动闪屏.可以依次解决: 1.在Tomcat启动文件Startup.bat之中最后添 ...
- Python学习笔记6-字典Dict
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. >>> person ...
- ios 一个正则表达式测试(只可输入中文、字母和数字)
一个正则表达式测试(只可输入中文.字母和数字) 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上 ...