Get an Even String - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题意:题目要使字符串变成偶字符串,对于每一个奇数i都和后面i+1的位置字符相同。求给定字符串最少去掉几个字符能得到偶字符串。
解题思路:贪心,找每次第一对出现的相同字符,然后将之间的所有字符抛弃。
#include<iostream>
#include<algorithm>
#include<vector>
#include<bitset>
#include<cmath>
#include<set>
#include<climits>
#include<map>
#include<cstring>//memset头文件
using i64 = int64_t;
using namespace std;
#define endl '\n'
#define int i64
const int maxn = 55;
void solve()
{
string str;
map<char,int>m;
cin >> str;
int n = str.size(),sum = 0;
for(int i = 0;i < n;i++)
{
m[str[i]]++;
if(m[str[i]] == 2)
{
m.clear();
sum += 2;
}
}
cout << n - sum << endl;
}
signed main()
{
cin.tie(0) -> sync_with_stdio(false);
int T = 1;
cin >> T;
while(T--)
solve();
return 0;
}