水题,直接贪心,可以转化成统计前后半部分数量最多的字符数量分别是多少。不难发现前后部分独立,分别处理即可。
#include <bits/stdc++.h>
using namespace std;
int main() {
std::cin.tie(nullptr)->sync_with_stdio(false);
std::string s;
std::cin >> s;
auto calc = [&](std::string s) -> int {
std::map<char, int> mp;
int mx = 0;
for (auto c : s) mx = std::max(mx, ++mp[c]);
return s.size() - mx;
};
int n = s.size();
std::cout << calc(s.substr(0, n / 2)) + calc(s.substr(n / 2));
return 0;
}

京公网安备 11010502036488号