26年B班第一次月测AI题解---T1
2026-09-28 16:47:41
发布于:浙江
T1.皓仔的统一大小写
代码
c++
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int upper = 0, lower = 0;
for (char c : s) {
if (c >= 'A' && c <= 'Z') {
upper++;
} else {
lower++;
}
}
cout << min(upper, lower) << endl;
return 0;
}
python
s = input().strip()
cnt1 = 0 # 大写字母数量
cnt2 = 0 # 小写字母数量
for ch in s:
if 'A' <= ch <= 'Z':
cnt1 += 1
else:
cnt2 += 1
print(min(cnt1, cnt2))
题解
思路
题目要求把字符串变成:
- 全部是大写字母;
- 全部是小写字母。
我们只需要统计原字符串中:
- 大写字母个数
upper - 小写字母个数
lower
如果最终全部改成大写,那么所有小写字母都需要修改,修改次数为 lower。
如果最终全部改成小写,那么所有大写字母都需要修改,修改次数为 upper。
所以最少修改次数就是:
min(upper, lower)
复杂度
- 时间复杂度:
O(n),其中n是字符串长度。 - 空间复杂度:
O(1)。
样例说明
输入:
HaOzai
其中:
- 大写字母:
H、O,共2个; - 小写字母:
a、z、a、i,共4个。
全部改成大写需要修改 4 次;
全部改成小写需要修改 2 次。
所以答案是:
2
这里空空如也



















有帮助,赞一个