题目要求假设第i个位置,i的二进制中有奇数个1,把第i个位置变成大写。长度最多有500,那么先预处理出500个位置哪些位置需要变化为大写,然后面对每个字符串先把该变化为大写的位置变化,然后输出即可
#include <bits/stdc++.h>
using namespace std;
#define N 2005
#define int long long
int a[N];
小红拿到了一个仅包含小写字母的字符串s。
对于每个下标p,如果p的二进制表示有奇数个1,那么将sp修改为对应的大写字母。(下标从1开始)
例如,字符串"abcdefg",其中下标1、2、4、7在二进制表示下都有奇数个1,因此字符串为"ABcDefG"。
小红想知道她拿到的字符串修改是什么,你能帮帮她吗?
第一行为T,表示有T组输入。
接下来T行,每行一个仅包含小写字母的字符串s。
1≤T≤2000
1≤len(s)≤500
输出T行,每行一个字符串,表示修改后的字符串。
输入
1
abcdefg
输出
ABcDefG
输入
3
vwcvnwaomy
ovoxcfdtf
yynbve
输出
VWcVnwAOmy
OVoXcfDTf
YYnBve