解题思路:
1.由题可得,给定一段字符串,然后查找里面VK相邻的情况,如果符合这个顺序,那么数量加1
2.条件是至多能改变1个字符,来增加VK的数量,分析情况,可知,已经是VK的情况已经不用再改动了,所以在第一步的时候,可以将他们处理一下,都变成空格或者是其他字符
3.只有存在VV或者KK的情况,通过改变一个字符才能实现VK的情况,那么只需要判断当前位置和下一个位置是否相等并且都不等于空格即可,数量可以加1,然后退出循环,因为至多可以改变一个字符
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
string s;
int ans=0;
cin>>s;
for(int i=0;i<s.length();i++)
{
if(s[i]=='V'&&s[i+1]=='K')//如果当前位置是V并且下一个位置是K的话
{
ans++;//数量加1
s[i]=' ';//并把这两个位置的字符都改成空格
s[i+1]=' ';
}
}
for(int i=0;i<s.length();i++)//重新开始遍历
{
if(s[i]!=' '&&s[i]==s[i+1])//如果当前位置不是空格并且和下一项相等
{
ans++;//ans加1
break;//退出循环
}
}
cout<<ans;
return 0;
}