1.将题目中可能出现的情况拆分出来,仅对可能的情况讨论,简化问题。
#include<iostream>
using namespace std;
int main()//取两个字符为单位,一共有VV,VK,KV,KK四种情况,其中KV在单位内没法更改故不成立
{
char a[100];
int n;
cin >> n;
cin>>a;//根据题目:只有V,K两个按键,因而不包含空格的情况
int sum = 0;
for (int i = 0; i < n-1; i++)//先找出所有VK的情况,找出计数并做好标记(针对于有奇数个字母的情况eg.VKKVK)
if (a[i]=='V'&&a[i + 1] == 'K') {
sum++; a[i] = 'v'; a[i + 1] = 'k';
}
for(int i=0;i<n-1;i++)//针对于KK和VV的情况
if (a[i] == a[i + 1]) {
sum++; break;
}
cout << sum << endl;
}