题意:给定两个串s与t,其中s可能有至多一个通配符*可以被当做任意长度与内容的串,问t能否与s匹配

n,m<=2e5

思路:

 #include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<vector>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> PII;
typedef vector<int> VI;
#define fi first
#define se second
#define MP make_pair
#define N 210000
#define MOD 1000000007
#define eps 1e-8
#define pi acos(-1)
#define oo 2000000000 char s[N],t[N],c[N]; int read()
{
int v=,f=;
char c=getchar();
while(c<||<c) {if(c=='-') f=-; c=getchar();}
while(<=c&&c<=) v=(v<<)+v+v+c-,c=getchar();
return v*f;
} void swap(int &x,int &y)
{
int t=x;x=y;y=t;
} int main()
{
// freopen("1.in","r",stdin);
// freopen("1.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m);
scanf("%s",s);
scanf("%s",t);
int flag=;
int p=-;
for(int i=;i<=n-;i++)
if(s[i]=='*'){flag=; p=i; break;}
// printf("%d\n",flag);
if(!flag)
{
int ans=;
if(n!=m) ans=;
for(int i=;i<=n-;i++)
if(s[i]!=t[i]){ans=; break;}
if(ans) printf("YES\n");
else printf("NO\n");
}
else
{
int flag1=;
for(int i=;i<=p-;i++)
if(s[i]!=t[i]){flag1=; break;}
int flag2=;
int k=m-;
for(int i=n-;i>=p+;i--)
{
if(s[i]!=t[k]){flag2=; break;}
k--;
}
if(n-<=m&&flag1+flag2==) printf("YES\n");
else printf("NO\n");
} return ;
}

最新文章

  1. 大型网站系统与Java中间件实践
  2. 20套高品质的 Mobile &amp; Web 界面 PSD 素材免费下载
  3. linux挂载远程samba目录
  4. Newtonsoft 自定义输出内容
  5. HDU 2986 Ballot evaluation(精度问题)
  6. codeforces #286 Div.2 C DP总是以意外的方式打败我
  7. WebSocket协议再认识
  8. 对html语义化的理解
  9. Java-NIO(九):管道 (Pipe)
  10. React(五)State属性
  11. 关于C++ return * this
  12. Percona Server 升级 5.7 到 8.0 版本
  13. 性能测试工具--SIEGE安装及使用简介 siege压力测试
  14. python 小程序,猜年龄
  15. PYTHON-TCP 粘包
  16. 使用LinkedHashMap来实现一个使用LRU(Least Recently Used)算法的cache
  17. log4net修改数据库连接字符串和写自定义信息
  18. Knockout与Require框架同时使用时的visible绑定的问题,造成的影响,以及解决的方法。
  19. iOS中textbox文本框清除圆角
  20. 【Alpha】阶段第十次Scrum Meeting

热门文章

  1. bower使用
  2. 【莫队】bzoj4866: [Ynoi2017]由乃的商场之旅
  3. Java 多线程同步生产者消费者问题-monitor
  4. CentOS 7.4 基于LNMP搭建wordpress
  5. ubuntu安装easygui模块
  6. destoon 列表页面增加手动选择排序方式
  7. matplotlib学习记录 二
  8. 树莓派开发板入门学习笔记1:[转]资料收集及树莓派系统在Ubuntu安装
  9. 在SCIKIT中做PCA 逆变换 -- 新旧特征转换
  10. 使用supervisor方便调试程序