1 条题解
-
0
自动搬运
来自洛谷,原作者为

Ptilopsis_w
你以为我是谁?这是我埋下的因,我要亲手解决这一切。搬运于
2025-08-24 22:27:25,当前版本为作者最后更新于2021-05-27 20:12:00,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题意
有一个字符串 , 可以往其中任意位置插入占位符,使其所有的大写字母的位置都在 的倍数上,插入占位符的最小数量
思路
-
题目很简单,对着样例搞一下就可以发现,在两个大写字母间,不管怎么插入占位符,只要数量相同效果就一样,所以思路就是用占位符从头开始一个个地将大写字母“推”到相应的位置上
-
对于已经对齐位置的大写字母,可以忽略掉,所以只看当前大写字母需要几个占位符,并累计到答案变量 里,当前大写字母的位置就是原来的位置 加上 ,而占位符数量就是
4-(i+ans)%4,至此,问题已经解决
代码
tips: STL中有个函数
isupper(),可以用来判断一个字符是否为大写字母#include<cstdio> #include<cstring> using namespace std; int main() { char ch[205]; scanf("%s", ch); int n = strlen(ch); int ans = 0; for(int i = 0; i < n; i++) { if(isupper(ch[i]) and (i+ans)%4 != 0) ans += 4-(i+ans)%4; } printf("%d", ans); return 0; } -
- 1
信息
- ID
- 5808
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者