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(字符串模拟)相关推荐

  1. CF5A Chat Server's Outgoing Traffic(字符串模拟,find函数的应用)难度⭐

    题意翻译 Polycarp正在开发一个名为"Polychat"的新项目.按照IT的现代倾向,他决定,这个项目也应该包含聊天.为了实现这一目标,Polycarp在笔记本电脑前花费了几 ...

  2. 剑指offer:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。

    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abc ...

  3. 【Luogu1580】yyy loves Easter_Egg I(纯字符串模拟)

    problem 保持队形(我们认为只要这一句内含有且恰好含有一次@,@的人和上一句话一样就算为队形) 若艾特的人与第一个人不同,就算队形被打破,油炸失败.若这个人在队形被打破之前出来吱声了,或者就是他 ...

  4. C. Petya and Exam

    C. Petya and Exam 题目链接 题目大意,考试t个小时,n个题,简单题要用a个小时,难题要花b个小时,每题1分,可随时交卷,但考试过程中会随着时间的延长,题目会变成必做题,如果交卷时必做 ...

  5. POJ 3095 Linear Pachinko 字符串模拟

    http://poj.org/problem?id=3095 简单字符串模拟 Linear Pachinko Time Limit:1000MSMemory Limit:65536K Descript ...

  6. Petya and Exam 模拟

    It's hard times now. Today Petya needs to score 100 points on Informatics exam. The tasks seem easy ...

  7. B. Petya and Exam

    题目链接 It's hard times now. Today Petya needs to score 100 points on Informatics exam. The tasks seem ...

  8. Petya and Exam

    Description It's hard times now. Today Petya needs to score 100 points on Informatics exam. The task ...

  9. 洛谷 - P1308 统计单词数(字符串+模拟)

    题目链接:点击查看 题目大意:给出一个字符串a和字符串b,现在问字符串b中有多少个单词与字符串a相等,并记录第一次出现的位置 题目分析:看似很简单的一个模拟题,其实包含了不少需要注意的地方: stri ...

最新文章

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

热门文章

  1. django中的request对象详解
  2. java flatmapfunction_Java Stream中map和flatMap方法
  3. 网上书城首页之书籍分类列表
  4. Python内置模块
  5. 为何在2019年之后应用型本科开设ROS课程优势消逝
  6. 盘点西瓜微数新功能。粉丝画像优化,新增品牌投放追踪功能
  7. 2020年第一碗鸡汤
  8. 鸿蒙之境的称号,神都夜行录鸿蒙之境怎么打 鸿蒙之境阵容搭配方法一览
  9. 利用js实现论坛发帖小案例
  10. macOS终端设置http与https代理