字符串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前缀,剩余的就是第二个字符串。

目录
相关文章
|
6月前
【错题集-编程题】春游(模拟 - 分情况讨论)
【错题集-编程题】春游(模拟 - 分情况讨论)
|
6月前
春晚刘谦第二个魔术原理讲解
春晚刘谦第二个魔术原理讲解
57 2
|
Java
第五期:字符串的一些有意思的操作
第五期:字符串的一些有意思的操作
88 0
|
Shell
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(三)
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(三)
254 0
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(三)
|
运维 Devops Linux
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
204 0
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(一)
|
Shell
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(二)
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(二)
222 0
Ansible概述和模块解释(你刚走过了今天,而扑面而来的却是昨天)(二)
|
JavaScript 前端开发
【重温基础】18.相等性判断
【重温基础】18.相等性判断
210 0
|
Java 数据安全/隐私保护 Spring
阿粉写了八千多字,只为讲透参数合法性验证)(二)
最近很多读者给阿粉留言,说怎么好久没看到我的文章了,这里说一下。 由于公众号不再按时间线排序,所以你会发现有时候能看到几天前的文章,这不是出BUG,是公众号的一次改变。 至于排序的具体标准是啥,阿粉也不太清楚,大概和你打开某个公众号的频率有关。 所以如果你想第一时间收到阿粉的文章,可以点击Java极客技术的的头像,再点右上角三个点,进去设置一下【星标】。
阿粉写了八千多字,只为讲透参数合法性验证)(二)
|
Java 数据库连接 Spring
阿粉写了八千多字,只为讲透参数合法性验证)(三)
最近很多读者给阿粉留言,说怎么好久没看到我的文章了,这里说一下。 由于公众号不再按时间线排序,所以你会发现有时候能看到几天前的文章,这不是出BUG,是公众号的一次改变。 至于排序的具体标准是啥,阿粉也不太清楚,大概和你打开某个公众号的频率有关。 所以如果你想第一时间收到阿粉的文章,可以点击Java极客技术的的头像,再点右上角三个点,进去设置一下【星标】。
阿粉写了八千多字,只为讲透参数合法性验证)(三)
|
Java Spring
阿粉写了八千多字,只为讲透参数合法性验证)(四)
最近很多读者给阿粉留言,说怎么好久没看到我的文章了,这里说一下。 由于公众号不再按时间线排序,所以你会发现有时候能看到几天前的文章,这不是出BUG,是公众号的一次改变。 至于排序的具体标准是啥,阿粉也不太清楚,大概和你打开某个公众号的频率有关。 所以如果你想第一时间收到阿粉的文章,可以点击Java极客技术的的头像,再点右上角三个点,进去设置一下【星标】。
阿粉写了八千多字,只为讲透参数合法性验证)(四)