Python解题-等价串

题目

一串长度为 n 的字符串 A 和一串长度为 m 的字符串 B。并且这两串字符串只会含有 0 或 1 。
铁子可以对字符串 A 执行两种操作,两种操作可以执行任意次。
操作1(无情替换):铁子可以用 11 替换掉 0 ,也可以用 00 替换掉 1 .
操作2(极限删除):铁子可以删除掉 111 ,也可以删除 000 .
现在问,字符串 A 可以变成字符串 B 吗?

输入描述:
第一行有一个整数T,表示有T(1<=T<=1000)组测试数据。
接下来的每组数据,第一行有两个整数n,m(1<=n,m<=100),表示字符串A和字符串B的长度。
接下来有两行字符串,分别表示字符串A和字符串B。

输出描述:
对于每组测试数据,如果字符串A可以变为字符串B,则输出一行”YES”,否则输出一行”NO”.输出不包括引号。

思路

将两个字符串运用00→1将1全部替换为0,然后根据删除000,若两字符串对3取余相同,则可以变换

代码

原题为C++题目,故有些数据在python中多余

a = int(input("数据数量"))
b = 0
c = 0
while a>0 :
    m = input("第一个长度")
    n = input("第二个长度")
    num1 = input("数列一")
    l1 = list(map(int, num1.split()))
    num2 = input("数列二")
    l2 = list(map(int, num2.split()))
    for i in l1:
        if(i==0):
            b += 1
        else:
            b += 2
    for i in l2:
        if (i == 0):
            c += 1
        else:
            c += 2
    if(b%3 == c%3):
        print("yes")
    else:
        print("no")
    a -= 1

python真是妙啊

发布了30 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44616044/article/details/88814652