字符串a和他许久未见面的同父异母的b(模拟)(思维)

简介: 字符串a和他许久未见面的同父异母的b(模拟)(思维)

题面和链接放文末


/*

流程:


是一道寻找a串中是否存在b串中的所有元素的进阶题,在此之上做出了“只能消除相邻字符“的限制


因为魔法学姐可以消除前缀,因此不用考虑前面的情况,从后往前在a串里找到b的每个元素即是yes,否则为no


*/

不要写多余的条件,推出了什么条件就写什么


写完这道题后突然感觉明白了为什么把思维和模拟放一块分类了:


思维题其实就是把流程隐藏起来,不易想到的模拟题,想到了流程之后就可以直接模拟求解

#include <iostream>
using namespace std;
int main(){
    int t;
    cin >> t;
    while(t--){
        string a,b;
        cin>> a >> b;
        int lena = a.size(),lenb = b.size();
        bool flag = false;
        for(int i = lena - 1,j = lenb - 1;j >= 0;i--,j--){//'&&'写成','后莫名re
            while(a[i] != b[j] && i >= 0) i-= 2;
            if(i < 0) {
                flag = true;
                break;
            }
        }
        if(flag){
            cout << "NO" << endl;
        }
        else cout << "YES" << endl;
    }
    return 0;
}

描述


今天是星期五,朱学姐像往常一样去工作室,但是今天他出门的时候是左脚踏出的寝室,所以她今天的运气不太好.

刚走到一般的路程,小卷毛就突然骑着小电驴从旁边飞驰而过,然后一个漂移跳下了车说:来不及解释了! 然后就丢给朱学姐两个神奇的字符串a和b

正当朱学姐摸不着头脑时,小卷毛已经直接弹射起步得飞向工作室,然后董学姐从后面追过来,看到了朱学姐手中的两个字符串,她十分的惊讶,说:这是上古时代遗留下来的字符串,如果在规定时间内成功的将a转化为b,那么你将获得一枚通向新大陆的通行证。我来的匆忙,只能先用我仅剩的法力值帮你让a的前缀消失,或者我也可以不操作“,然后董学姐走了之后,朱学姐发现他可以用当前法力值让处理后的字符串去掉任意数量的两个相邻的字符,并且这些操作是同时进行的。

现在好奇又聪明的你想要知道朱学姐可不可能拿到通行证(已知朱学姐聪明绝顶)。


输入描述


第一行输出一个t(1<=t<=10000)表示有t组测试样例

每一组都有两行,第一行是字符串a,第二行是字符串b

(a和b的长度均不超过105)

保证在所有测试案例中,字符串的总字符数不超过2⋅105。


输出描述


对于每组数据a能转化为b就输出“”YES"否者就输出“NO”,每组输出用空格隔开。


用例输入 1


4

ababa

ba

ababa

bb

aaa

aaaa

aababa

ababa

用例输出 1


YES

NO

NO

YES

提示


对于样例1来说,我们只需要先让董学姐删除前缀aba

然后剩下的字符串不进行操作。既可以转化为b,或者是删除前缀a,然后第一个字符串就变为baba,我们在选择下标为1,2的字符删去,就可以转化为第二个字符串。


对于第4组数据,我们可以删除下标为1前缀,剩余的就是第二个字符串。

目录
相关文章
|
Java 关系型数据库 MySQL
基于SSM的宿舍管理系统(有报告)。Javaee项目。
基于SSM的宿舍管理系统(有报告)。Javaee项目。
121Echarts - 关系图(Les Miserables)
121Echarts - 关系图(Les Miserables)
181 0
|
9月前
|
设计模式 前端开发 JavaScript
前端必须掌握的设计模式——装饰器模式
装饰器模式是一种结构型设计模式,通过创建新类来包装原始对象,实现在不修改原有结构的前提下扩展新行为。其核心在于“组合”思想,使新功能可“即插即拔”。该模式具有解耦性、灵活性和动态性等特点,广泛应用于类的面向对象编程语言中,如JavaScript的注解和TypeScript的写法。示例中,通过装饰器模式为游戏角色动态添加装备,展示了其强大的扩展性和灵活性。
170 16
|
11月前
|
容器
Flutter&鸿蒙next 布局架构原理详解
Flutter&鸿蒙next 布局架构原理详解
|
9月前
|
安全 数据管理 关系型数据库
解锁数据管理的无限可能——探索 Teable 多维表格
Teable 是一个基于 Postgres 构建的企业级多维表格解决方案,提供卓越性能、灵活多维表格、丰富视图、精细权限管理、实时协作及自动化工作流等核心特性,支持私有部署,助力企业高效管理海量数据,加速数字化转型。
706 3
|
存储 JavaScript 前端开发
Django + Vue 实现图片上传功能的全流程配置与详细操作指南
 在现代Web应用中,图片上传是一个常见且重要的功能。Django作为强大的Python Web框架,结合Vue.js这样的现代前端框架,能够高效地实现这一功能。本文将详细介绍如何在Django项目中配置图片上传的后端处理,并在Vue前端实现图片的选择、预览和上传功能。
|
11月前
|
Shell 网络安全 数据库
sqlmap过滤连续空格的方法(二)
sqlmap过滤连续空格的方法(二)
|
JSON 架构师 前端开发
SpringBoot从小白到精通(二)如何返回统一的数据格式
前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目。 今天来说一说Spring的@Controller和@RestController控制器, 他们是如何响应客户端请求,如何返回json数据。
SpringBoot从小白到精通(二)如何返回统一的数据格式
|
Java Android开发
Android 四大组件之ContentProvider 访问通讯录进行增删改查操作
Android 四大组件之ContentProvider 访问通讯录进行增删改查操作
186 0
|
C语言
【C语言】让你不再害怕“指针”【知识点详解】
【C语言】让你不再害怕“指针”【知识点详解】
212 0

热门文章

最新文章