honoka的键盘 洛谷 - P3741
问题描述
honoka 有一个只有两个键的键盘。
一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有 VK 这个字符串的时候,honoka 就特别喜欢这个字符串。
所以,她想改变至多一个字符(或者不做任何改变)来最大化这个字符串内 VK 出现的次数。
给出原来的字符串,请计算她最多能使这个字符串内出现多少次 VK(只有当 V 和 K 正好相邻时,我们认为出现了 VK。)
输入格式
第一行给出一个数字 n,代表字符串的长度。
第二行给出一个字符串 s。
输出格式
第一行输出一个整数代表所求答案。
以下样例为多组样例数据,实际提交是并不会有影响。
输入样例
2
VK
2
VV
1
V
20
VKKKKKKKKKVVVVVVVVVK
4
KVKV
输出样例
1
1
0
3
1
数据范围:对于 100% 的数据,1≤n≤100。
- 参考程序
#include<iostream>
#include<string>
using namespace std;
int main(){
// freopen("data.in", "r", stdin);
int n;
while(cin>>n){
int ans=0;
string s; cin>>s;
int i=s.find("VK");
while(i!=-1){
ans++;
s.replace(i, 2, "11");
i = s.find("VK");
}
if(s.find("VV")!=-1||s.find("KK")!=-1) ans++;
cout<<ans<<endl;
}
return 0;
}