赞
踩
MT 是美团的缩写,因此小美很喜欢这两个字母。
现在小美拿到了一个仅由大写字母组成字符串,她可以最多操作 k 次,每次可以修改任意一个字符。
小美想知道,操作结束后最多共有多少个 'M' 和 'T' 字符?
第一行输入两个正整数 n,k,代表字符串长度和操作次数。
第二行输入一个长度为 n 的、仅由大写字母组成的字符串。
输出操作结束后最多共有多少个 'M' 和 'T' 字符。
输入 | 5 2 MTUAN |
输出 | 4 |
说明 | 修改第三个和第五个字符,形成的字符串为 MTTAM,这样共有 4 个'M'和'T'。 |
本题我们只需要统计出第二行输入的s串中:
M和T字符的数量:mt_count,以及非M、T字符的数量:not_mt_count。
由于我们最多可以操作k次,即最多将k个非M、T字符修改为M或T字符:
即最终最多有 mt_count + min(k, not_mt_count) 个 M或T 字符。
- const rl = require("readline").createInterface({ input: process.stdin });
- var iter = rl[Symbol.asyncIterator]();
- const readline = async () => (await iter.next()).value;
-
- void (async function () {
- const [n, k] = (await readline()).split(" ").map(Number);
- const s = await readline();
-
- let mt_count = 0;
- let not_mt_count = 0;
-
- for (let c of s) {
- if (c == "M" || c == "T") {
- mt_count++;
- } else {
- not_mt_count++;
- }
- }
-
- const ans = Math.min(k, not_mt_count) + mt_count;
-
- console.log(ans);
- })();
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
-
- int n = sc.nextInt();
- int k = sc.nextInt();
- String s = sc.next();
-
- int mt_count = 0;
- int not_mt_count = 0;
-
- for (int i = 0; i < n; i++) {
- char c = s.charAt(i);
-
- if (c == 'M' || c == 'T') {
- mt_count++;
- } else {
- not_mt_count++;
- }
- }
-
- int ans = Math.min(k, not_mt_count) + mt_count;
-
- System.out.println(ans);
- }
- }
- if __name__ == "__main__":
- n, k = map(int, input().split())
- s = input()
-
- mt_count = 0
- not_mt_count = 0
-
- for c in s:
- if c == "M" or c == "T":
- mt_count += 1
- else:
- not_mt_count += 1
-
- ans = min(k, not_mt_count) + mt_count
-
- print(ans)
- #include <stdio.h>
- #include <math.h>
-
- #define MAX_LEN 100001
-
- int main() {
- int n, k;
- scanf("%d %d", &n, &k);
-
- char s[MAX_LEN];
- scanf("%s", s);
-
- int mt_count = 0;
- int not_mt_count = 0;
-
- int i = 0;
- while (s[i] != '\0') {
- if (s[i] == 'M' || s[i] == 'T') {
- mt_count++;
- } else {
- not_mt_count++;
- }
- i++;
- }
-
- int ans = (int) fmin(k, not_mt_count) + mt_count;
-
- printf("%d\n", ans);
-
- return 0;
- }
- #include <bits/stdc++.h>
-
- using namespace std;
-
- int main() {
- int n, k;
- cin >> n >> k;
-
- string s;
- cin >> s;
-
- int mt_count = 0;
- int not_mt_count = 0;
-
- for (const auto &c: s) {
- if (c == 'M' || c == 'T') {
- mt_count++;
- } else {
- not_mt_count++;
- }
- }
-
- int ans = min(k, not_mt_count) + mt_count;
-
- cout << ans << endl;
-
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。