2447: 【入门】【P3741】 小果的键盘
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:74
解决:19
题目描述
一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有
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; }