思维
对于最开始的时候,统计小写字母,大写字母有多少个,优先考虑把所有小写字母变成大写字母,此时已经消耗了一定数量的次数,如果还有剩余的次数,此时已经全部是大写了,剩余的次数都对一个字母循环操作,还剩偶数答案不变,否则答案减一。
代码如下
cpp
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
P2124.2024.9.24-第1题-变换大小写的字符串
题目内容
小红拿到了一个仅由大小写字母构成的长度为n的字符串,他每次操作可以进行一次大小写变换,例如把'a'变成'A',或者把'Y'变成'y',等等。
小红希望经过正好k次操作之后,大写字母的数量尽可能多。
你能帮帮他吗?
只需要告诉他最终大写字母的数量即可。
输入描述
第一行输入两个正整数n和k,用空格隔开。
第二行输入长度n为一个仅由大小写字母构成的字符串。
1≤n≤105
1≤k≤109
输出描述
一个整数,代表经过正好k次操作后,最终大写字母的数量。
样例1
输入
1 3
A
输出
0
说明
只有一个字母可以变换。对该字符操作3次,A->a->A->a,最终的字符串是"a",因此没有大写字母。
样例2
输入
5 3
arBrg
输出
4
说明
把第一个、第二个、第四个字母进行变换后,字符串为"ARBRg",有四个大写字母。