2447: 【入门】【P3741】 小果的键盘
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:76
解决:20
题目描述
一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有
VK 这个字符串的时候,小果就特别喜欢这个字符串。所以,她想改变至多一个字符(或者不做任何改变)来最大化这个字符串内 VK 出现的次数。给出原来的字符串,请计算她最多能使这个字符串内出现多少次 VK(只有当 V 和 K 正好相邻时,我们认为出现了 VK。)输入
第一行给出一个数字 ,代表字符串的长度。
第二行给出一个字符串 。
输出
第一行输出一个整数代表所求答案。
样例输入 复制
2
VK
样例输出 复制
1
提示
说明/提示
对于 的数据,。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,ans=0;
string s;
cin>>n>>s;
for(int i=0;i<n-1;i++){
if(s[i]=='V'&&s[i+1]=='K') { //先统计不改变字符时"VK"出现的次数
ans++;
s[i]='A'; //已经统计过的地方,马上改成"VK"以外的字符,以免被重复统计
s[i+1]='A';
}
}
for(int i=0;i<n-1;i++){
if(s[i]=='V'&&s[i+1]=='V') { //"VV"改变1个字符,可以变为"VK"
ans++;
break; //如果有"VV"就不需要再看"KK"了
}
if(s[i]=='K'&&s[i+1]=='K') { //"KK"改变1个字符,可以变为"VK"
ans++;
break;
}
}
cout<<ans;
return 0;
}