#include <iostream>
using namespace std;
using ll = long long;
int main() {
ll q;
cin >> q;
// 步骤1:处理多组测试用例(q组查询)
while (q--) {
string s;
cin >> s; // 读取每组的二进制字符串
// 步骤2:处理边界情况——字符串长度为1
// 算法思想:长度为1时,不存在长度为2的连续子串,无法进行任何翻转操作
// 此时字符串本身就满足"所有字符相同"的条件,直接返回"Yes"
if (s.size() == 1) {
cout << "Yes" << endl;
continue; // 跳过后续逻辑,处理下一组测试用例
}
// 步骤3:核心统计——统计字符串中'1'的总个数
// 算法思想:基于"1的个数奇偶性不变"的核心规律,'1'的个数是后续判断的关键数据
ll cnt1 = 0;
for (auto t : s) {
if (t == '1') {
cnt1++; // 遍历字符串,每遇到一个'1'就累加计数器
}
}
// 步骤4:核心判断——基于奇偶性规律,判断两个目标状态是否有其一可行
// 算法思想:抓住"初始1的个数奇偶性"与"目标状态奇偶性"匹配的核心
// 条件1 (cnt1%2==0):判断能否转为全0(全0状态1的个数为0,是偶数,匹配初始1的个数偶数即可)
// 条件2 (cnt1%2==s.size()%2):判断能否转为全1(全1状态1的个数为字符串长度s.size(),匹配两者奇偶性一致即可)
// 两个条件满足其一,即说明可以实现"所有字符相同"的目标,返回"Yes"
if (cnt1 % 2 == 0 || cnt1 % 2 == s.size() % 2) {
cout << "Yes" << endl;
}
// 步骤5:返回不可行结果——两个目标状态均无法满足,返回"No"
else {
cout << "No" << endl;
}
}
return 0;
}