首先统计字符串中除了M和T以外的字符的个数,记为cnt
操作次数为k,因此最多可以将min(k,cnt)个字符变为M和T
再加上之前的M和T字符的个数,因此答案为n−cnt+min(k,cnt)
C++
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int n,k;
cin>>n>>k>>s;
int res=0,cnt=0;
for(auto &ch:s){
if(ch!='M'&&ch!='T'){
cnt++;
}
}
res=n-cnt+min(k,cnt);
cout<<res<<endl;
return 0;
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
String s = scanner.next();
int res = 0, cnt = 0;
for (char ch : s.toCharArray()) {
if (ch != 'M' && ch != 'T') {
cnt++;
}
}
res = n - cnt + Math.min(k, cnt);
System.out.println(res);
}
}
Python
n, k=map(int,input().split())
s=input()
res = 0
cnt = 0
for ch in s:
if ch != 'M' and ch != 'T':
cnt += 1
res = n - cnt + min(k, cnt)
print(res)
小美很喜欢这M和T这两个字母。现在小美拿到了一个仅由大写字母组成字符串,她可以最多操作k次,每次可以修改任意一个字符。小美想知道,操作结束后最多共有多少个'M'和'T'字符?
第一行输入两个正整数n,k,代表字符串长度和操作次数
第二行输入一个长度为n的、仅由大写字母组成的字符串 1≤k≤n≤105
输出操作结束后最多共有多少个M和T字符
输入
5 2
MTUAN
输出
4
说明
修改第三个和第五个字符,形成的为MTTAM,这样共有4个M和T