B Vicious Keyboard

题目链接:https://vjudge.net/contest/162220#problem/B

题解:

1.线性扫描如果是VK利用新数组标记特殊,若是单独V  K用其他标记

2.特殊的++,其他标记的若有相同的V || K在一起的话++

AC code:

#include <stdio.h>
#include <string.h>
int main()
{
char s[300];
int flag=0;
int a[300];
while(gets(s))
{
int len;
int sum=0;
len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]=='V' && s[i+1]=='K')
{
sum++;
i++;
a[i]=a[i+1]=1;
}
else if(s[i]=='V')
{
a[i]=2;
}
else if(s[i]=='K')
{
a[i]=3;
}
}
for(int i=0;i<len;i++)
{
if(a[i]==a[i+1] && a[i]!=1)
flag=1;
}
printf("%d\n",flag+sum);
}
return 0;
}

  

原文地址:https://www.cnblogs.com/DemonZiv/p/6818830.html