洛谷P3741

这道题目是关于洛谷上的一道问题,要求通过最多改变一个字符,使一个只包含字符"V"和"K"的字符串中"VK"的出现次数最大化。输入为字符串长度和原始字符串,输出为最大可能的"VK"数量。解题思路是首先计算已有"VK"的数量,再检查是否有连续的字符段可以通过修改形成新的"VK"对。

题目

原题地址
题目背景
honoka 有一个只有两个键的键盘。

题目描述
一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有”VK”这个字符串的时候,honoka 就特别喜欢这个字符串。所以,她想改变至多一个字符(或者不做任何改变)来最大化这个字符串内”VK”出现的次数。给出原来的字符串,请计算她最多能使这个字符串内出现多少次”VK”。(只有当”V”和”K”正好相邻时,我们认为出现了”VK”。)

输入输出格式
输入格式:
第一行给出一个数字 n,代表字符串的长度。第二行给出一个字符串 s。

输出格式:
第一行输出一个整数代表所求答案。

输入输出样例
输入样例#1:
2
VK
输出样例#1:
1

输入样例#2:
2
VV
输出样例#2:
1

输入样例#3:
1
V
输出样例#3:
0

输入样例#4:
20
VKKKKKKKKKVVVVVVVVVK
输出样例#4:
3

输入样例#5:
4
KVKV
输出样例#5:
1

说明
对于 100%的数据,1<=n<=100 。

题解

先判断输入中有多少VK,然后看剩下来的连续字符里面有没有能通过修改一个字符获得一个VK的。如果这个不符合要求的字符段的长度为2,那么只要这个字符段不是KV就都符合要求;如果这个字符段的长度大于3,那么不管这个字符段的内容是什么,它一定符合要求。因为只能修改一次,所以判断过一次之后立刻就可以break出来。另外,由于不存在通过修改一个字符获得两个VK的情况,所以这里不用考虑其他的意外情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值