1.这道题的关键是读懂题目,代码并不难,重点关注题目的这句话
2.题目中所以后面的那句话,我们可以提取出两个信息:
? ?2.1.只有V和K相邻时才认为出现了VK,KV不可以
? 2.2她可以改变一个字符,使VK出现的次数最多,我们可以改变的是:VV和KK
3.代码设计:
? ?3.1先循环一遍,找出VK出现的次数
? ?3.2再将找到的VK换成其他字符,避免对下一次找VV和KK形成干扰
? ? 3.3再循环一次找有咩有KK或者VV,有就将它们改成VK,记住只能改一次,改完就跳出循环
#include <stdio.h>
int main()
{
int n = 0;
int i = 0,cont=0;
scanf("%d", &n);
char s[100] = { 0 };
scanf("%s", s);
for (i = 0; i < n-1; i++)
{
if (s[i] == 'V' && s[i + 1] == 'K')
{
cont++;
s[i] = 'X';
s[i + 1] = 'X';
}
}
for (i = 0; i < n-1; i++)
{
if (s[i] == 'V' && s[i + 1] == 'V')
{
cont++;
s[i + 1] = 'K';
break;
}
if (s[i] == 'K' && s[i + 1] == 'K')
{
s[i] = 'V';
cont++;
break;
}
}
printf("%d", cont);
return 0;
}