首先我是举了几个例子

长度为1的一定符合要求

长度为2的01或者10是无法符合要求的

长度为3的一定符合要求

长度为4的0111,1011,1101,1110,1000,0100,0010,0001是无法符合条件的。

从中我们发现不符合条件的都有一个共性那就是0和1的个数都是奇数。为什么0和1的个数为奇数就一定不行呢?

我们从题中的变换可以得到,一共四种方式:

11->00

00->11

01->10

10->01

我们可以得到这四种方式都不会改变0和1数量上的奇偶(会改变大小)。那么如果0和1都为奇数的话就总有1个0或者1独立于其他的。所以都为奇数不行。例如3个0和3个1,我们都是偶数形式的变化,最终最多变成5个0和1个1,或者5个1和1个0。

那么有一奇一偶为什么行那,我们可以将偶数个数的字符通过上述四种操作变成全为奇数的。例如3个1和4个0,我们可以将4个0全部变成1.

那么全为偶数呢?我们就可以0或者1为目标进行变换,例如4个0和4个1,我们可以将其变成8个1或者8个0。

因为问题是能不能,而不是怎么做,所以我们不需要考虑中间怎么进行变换的。

#include <bits/stdc++.h>
using namespace std;
int q;
string str;
int main() {
    cin>>q;
    while(q--){
        cin>>str;
        int zero=0,one=0;
        for(int i=0;i<str.size();i++){
            if(str[i]=='1') one++;
            else zero++;
        }
        if(zero%2&&one%2) cout<<"No"<<endl;
        else cout<<"Yes"<<endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")