Petya and Exam(字符串模拟)
Petya and Exam - CodeForces 832B - Virtual Judge (csgrandeur.cn)
题意:给你一个好的字符串和一个模式串,模式串里面的?可以替换成任意的好的字符,*可以替换成0个字符或者是一个坏的字符串,给你n个操作,每次给出一个字符串,问你可不可以将模式串变成这个字符串。
code:
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
string a,b;
int n,idx,lenb;
map<char,bool> st;void solve()
{string s;cin>>s;int len=s.size();if(idx==0&&lenb!=len)//没有*且两串不相等{cout<<"NO"<<endl;return;}if(idx==1&&lenb-len>1)//有*两串相差大于1{cout<<"NO"<<endl;return;}int l=len-lenb+1,ib=0,is=0;//l的设定非常巧妙,给定串小了,l=-1,在判断*号直接不进入循环,跳出,相等,说明要改变,进入循环,删掉while(is<len){if(b[ib]!='?'&&b[ib]!='*'){if(b[ib]!=s[is]){cout<<"NO"<<endl;return;}}else if(b[ib]=='?'){if(st[s[is]]==false){cout<<"NO"<<endl;return;}}else if(b[ib]=='*'){for(int j=0;j<l;j++){if(st[s[is+j]]==true){cout<<"NO"<<endl;return;}//len=lenb-1; 此时b中的*要删除 l=0 //len=lenb * 此时b中的*要替换 l=1; }is=is+l-1;}is++,ib++;}// cout<<is<<" "<<ib<<endl;// if(ib<lenb||is<len)
// {
// cout<<"NO"<<endl;
// return;
// }cout<<"YES"<<endl;}int main()
{cin>>a>>b;lenb=b.size();for(int i=0;i<a.size();i++){st[a[i]]=true;//记录好的字符}for(int i=0;i<lenb;i++){if(b[i]=='*') idx=1;//有没有*}cin>>n;while(n--){solve();}return 0;
}
END
Petya and Exam(字符串模拟)相关推荐
- CF5A Chat Server's Outgoing Traffic(字符串模拟,find函数的应用)难度⭐
题意翻译 Polycarp正在开发一个名为"Polychat"的新项目.按照IT的现代倾向,他决定,这个项目也应该包含聊天.为了实现这一目标,Polycarp在笔记本电脑前花费了几 ...
- 剑指offer:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abc ...
- 【Luogu1580】yyy loves Easter_Egg I(纯字符串模拟)
problem 保持队形(我们认为只要这一句内含有且恰好含有一次@,@的人和上一句话一样就算为队形) 若艾特的人与第一个人不同,就算队形被打破,油炸失败.若这个人在队形被打破之前出来吱声了,或者就是他 ...
- C. Petya and Exam
C. Petya and Exam 题目链接 题目大意,考试t个小时,n个题,简单题要用a个小时,难题要花b个小时,每题1分,可随时交卷,但考试过程中会随着时间的延长,题目会变成必做题,如果交卷时必做 ...
- POJ 3095 Linear Pachinko 字符串模拟
http://poj.org/problem?id=3095 简单字符串模拟 Linear Pachinko Time Limit:1000MSMemory Limit:65536K Descript ...
- Petya and Exam 模拟
It's hard times now. Today Petya needs to score 100 points on Informatics exam. The tasks seem easy ...
- B. Petya and Exam
题目链接 It's hard times now. Today Petya needs to score 100 points on Informatics exam. The tasks seem ...
- Petya and Exam
Description It's hard times now. Today Petya needs to score 100 points on Informatics exam. The task ...
- 洛谷 - P1308 统计单词数(字符串+模拟)
题目链接:点击查看 题目大意:给出一个字符串a和字符串b,现在问字符串b中有多少个单词与字符串a相等,并记录第一次出现的位置 题目分析:看似很简单的一个模拟题,其实包含了不少需要注意的地方: stri ...
最新文章
- 为啥程序员下班后只关显示器从不关电脑?看看各大网站的答案~
- linux rpm mysql 路径_linux基础-linux 下 安装 rpm 格式 的 mysql
- jqGrid文字根据表格大小自动换行
- hdu 2795(单点改动)
- 算法训练 最小乘积(基本型) (蓝桥杯水题)
- 跨平台开发框架到底哪家强?5款主流框架横向对比!
- SQL server常用查询
- Qt工作笔记-时QLabel具有点击事件(使用EventFilter)
- java程序设计自考_java程序设计自考试题
- 每天一个linux命令(55)--at命令
- vim替换字符(包括行首行尾添加字符串)
- 大数据面试官别再问闭包了
- 多linux服务器之间实现文件自动复制(脚本)
- PHP爬取网页内容并存放至项目文件中
- 请教如何注销从微信登陆的CSDN账户?
- 无法连接阿里云 Windows 实例远程桌面
- HTTP接口设计规范
- ios 微信内置浏览器 缓存清理
- NLP教程笔记:BERT 双向语言模型
- broker指定ip
热门文章
- 一次练手实战破解某字典–爆破篇
- C# 多线程详细讲解
- 猫眼爬虫top100(xpath,re)对评分进行数据可视化。
- 目前,实现机器人语音交互功能的主流技术有哪些?
- php如何获取视频封面,html5 上传视频后 如何取得视频当中的片段作为视频封面?...
- 数据结构与算法-克鲁斯卡尔算法(Kruskal) | 尚硅谷韩顺平
- 甲申日,订盟时—思杰马克丁与吉他左轮签约Guitar Pro合作代言
- html注释图案,jQuery图片点击弹出遮罩层标记注释特效
- 深度学习中常用的优化算法(SGD, Nesterov,Adagrad,RMSProp,Adam)总结
- 自学day1 | Simulink在控制系统与电路中的简单demo