2447: 【入门】【P3741】 小果的键盘

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:74 解决:19

题目描述

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

输入

第一行给出一个数字 lns="http://www.w3.org/1998/Math/MathML">,代表字符串的长度。

第二行给出一个字符串 lns="http://www.w3.org/1998/Math/MathML">

输出

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

样例输入 复制

2
VK

样例输出 复制

1

提示


输入 #2
2
VV
输出 #2
1
输入 #3
1
V
输出 #3
0
输入 #4
20
VKKKKKKKKKVVVVVVVVVK
输出 #4
3
输入 #5
4
KVKV
输出 #5
1

说明/提示

对于 lns="http://www.w3.org/1998/Math/MathML">100% 的数据,lns="http://www.w3.org/1998/Math/MathML">1100

#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;
}