https://www.luogu.com.cn/problem/P3741
#include <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
#include <algorithm>
using namespace std;
long long qmi(int m, int k)
{
int res = 1, t = m;
while (k)
{
if (k&1) res = res * t;
t = t * t;
k >>= 1;
}
return res;
}
int read(){
int x = 0,f = 1;
char c = getchar();
while (c<'0'||c>'9') {
if (c=='-') {
f = -1;
}
c = getchar();
}
while (c>='0'&&c<='9') {
x = x*10+c-'0';
c = getchar();
}
return x*f;
}
const int maxn=110;
int n,ans;
char s[maxn];
bool f[maxn];//f数组表示第i个字符有没有被使用过
int main()
{
scanf("%d%s",&n,s);
for(int i=1;i<n;i++){
if(s[i-1]=='V' && s[i]=='K'){
ans++;
f[i-1] = f[i] = true;//标记为已经统计过
}
}
//如果出现了VK,将答案+1,标记为已经使用
for(int i=1;i<n;i++){
if(!f[i-1] && !f[i] && s[i-1]==s[i]){//若前后两个字节相同,且没有b被统计过
ans++;//如果有连续两个字符相同且没有被使用过,将答案+1,并不再进行此操作
break;
}
}
printf("%d\n",ans);
return 0;
}
/*
20
VKKKKKKKKKVVVVVVVVVK
============
3
*/
网友评论