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真是妙啊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章