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 ...
最新文章
- 《机器学习与数据科学(基于R的统计学习方法)》——2.11 R中的SQL等价表述...
- 在线学位课程_您在四年制计算机科学学位课程中学到的知识
- UVa11809 - Floating-Point Numbers
- 放上了一篇几个月前写的东西
- Base64 加密字符串和文件
- Filecoin网络目前总质押量约为3314万枚FIL
- 鲍勃·维德拉:一位硬件工程师的叛逆传奇 | 人物志
- Confluence 6 数据库表-杂项(Miscellaneous)
- hadoop权威指南笔记
- 第四章 实验三IBM MQ测试高可用,使用连接工厂(多地址连接方式)
- 华为手机卡在升级界面_华为安装升级包卡在5 华为手机如何刷机?
- 【设计模式】职责链模式,MySQL+Tomcat+JVM,看完还怕面试官
- Unity格子类三消游戏【物体下落】小细节(Unity萌新的备忘录)
- 穿越火线老是卡在正在连接服务器,修复cf经常提示网络出现异常与服务器断开连接的方法...
- adb命令查看手机电池信息
- redis通过key模糊搜索_jedis模糊查询key
- 我喜欢你c语言程序设计,我喜欢你,表白代码怎么说
- 如何做默认样式重置?RESETTING 和 NORMALIZING 之间有什么区别?
- 什么是凸函数及如何判断一个函数是否是凸函数
- Google分布式系统三大论文(二)Bigtable: A Distributed Storage System for Structured Data