honoka的键盘 字符串

题目背景

honoka 有一个只有两个键的键盘。

题目描述

一天,她打出了一个只有这两个字符的字符串。当这个字符串里含有 VK 这个字符串的时候,honoka 就特别喜欢这个字符串。所以,她想改变至多一个字符(或者不做任何改变)来最大化这个字符串内 VK 出现的次数。给出原来的字符串,请计算她最多能使这个字符串内出现多少次 VK(只有当 VK 正好相邻时,我们认为出现了 VK。)

输入格式

第一行给出一个数字 n,代表字符串的长度。

第二行给出一个字符串 s

输出格式

第一行输出一个整数代表所求答案。

输入输出样例

输入 #1复制

2
VK

输出 #1复制

1

输入 #2复制

2
VV

输出 #2复制

1

输入 #3复制

1
V

输出 #3复制

0

输入 #4复制

20
VKKKKKKKKKVVVVVVVVVK

输出 #4复制

3

输入 #5复制

4
KVKV

输出 #5复制

1

这个题无非只有四种排列情况VK KV KK VV

其中,VK是符合要求的,KK和VV都能改一个字符成为VK,只有KV不可以改

先从头到尾跑一遍,把正确的VK都改为X

再跑一遍找到一个KK 或 VV就停

#include<bits/stdc++.h> //万能头文件
using namespace std;
int main () {

    int n;

    //getchar();
    string s;
    cin>>n;
    cin>>s;
    int count = 0;
    for (int i = 0; i < s.size() - 1; i++) {
        if (s[i] == 'V' && s[i + 1] == 'K') {
            count++;
            s[i] = '0';
            s[i + 1] = '1';
        }
    }
    for (int i = 0; i < s.size() - 1; i++) {
        if (s[i] == s[i + 1]) {
            cout<<count + 1;
            return 0;
        }
    }
    cout<<count;

}
posted @ 2021-04-30 10:25  JK~  阅读(134)  评论(0编辑  收藏  举报