7-6 赛博黑客

发布时间 2023-12-01 00:00:42作者: 刘倩_网安2211

7-6 赛博黑客

目录

题目

在赛博朋克2077的夜之城,网络黑客们可以在入侵敌人协议时利用一种被称为“魔偶”的数字序列来渗透控制敌人,而技术高超的网络监察则努力破解这些魔偶代码,以保护关键信息不被窃取。魔偶(长度为k)如果满足对于所有的i (1≤i≤k−1),有a[i]!=a[i+1],则被认为是“稳定”的,能够有效地穿透黑墙的防御。.
例如,1、101、0101都是稳定的魔偶,而11、1001、001100则不是。
作为一名黑客,你发现了一种潜在的攻击方法:将两个魔偶代码组合,通过将一个短代码t插入另一个长代码s的任意位置(可以进行一次或多次操作,也可以不进行操作),来形成一个稳定的魔偶。你的目标是编写一个程序,判断是否有可能通过这种方式将s转化为稳定的魔偶代码,进而入侵敌人。

输入格式:
首先输入一个整数T表示测试案例的数量。
对于每一组测试数据,首先输入两个整数n和m,代表两个幽灵代码的长度。接下来输入两个字符串s和t,代表两个幽灵代码。保证s和t的长度分别为n和m (1≤n,m≤100),且只包含字符0和1。

输出格式:
对于每一组输入数据,在一行中输出答案。如果可以通过上述操作使s成为稳定的幽灵代码,输出"YES";否则,输出"NO"。

输入样例:

5
1 1
0
1
2 2
00
11
7 3
010110
010
5 3
10101
000
7 2
1100110
01

输出样例:

YES
NO
YES
YES
NO

样例解释:
在第一组样例中,魔偶s的代码0已经是稳定的魔偶,可以无需进行操作。
在第三组样例中,对于不稳定的魔偶s的代码010110,可以在第四个位置后插入另一个魔偶t代码010,变为010101010

代码

思路

  1. 首先输入一个整数T表示测试案例的数量。
  2. 对于每一组测试数据,首先输入两个整数n和m,代表两个幽灵代码的长度。接下来输入两个字符串s和t,代表两个幽灵代码。
  3. 定义flag=1表示s稳定,根据a[i]!=a[i+1]判断s是否稳定,若不稳定,则flag=0。
  4. 若flag=1,则无需插入s已经稳定
    若flag=0,则判断插入t后s是否稳定