题目
一串长度为 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真是妙啊