关于c++:题解洛谷-P3741-honoka的键盘

36次阅读

共计 591 个字符,预计需要花费 2 分钟才能阅读完成。

洛谷 P3741 honoka 的键盘

题目链接

思路

题中无非三种状况:

  1. VK,间接计数
  2. VV,扭转一个字符后计数
  3. KK,扭转一个字符后计数
  4. KV,无论如何无奈计数

能够先遍历一遍,把所有 VK 找进去,计数,而后把 VK 换成“XX”,再进行第二次遍历,找 VV 或者 KK,如果找到,总数就加 1,并退出循环。

代码

/*
 * @Description: 
 * @Author: 多多
 * @Date: 2020-10-24 22:28:12
 * @LastEditTime: 2020-10-24 22:32:09
 * @LastEditors: 多多
 */
#include <bits/stdc++.h>
using namespace std;

int main()
{//freopen("P3741.in", "r", stdin);
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    string s;
    cin >> s;
    int sum = 0;
    for (int i = 0; i < n - 1; i++)
    {if (s[i] == 'V' && s[i + 1] == 'K')
        {
            sum++;
            s[i] = s[i + 1] = 'X';
        }
    }
    for (int i = 0; i < n - 1; i++)
    {if ((s[i] == 'V' && s[i + 1] == 'V') || (s[i] == 'K' && s[i + 1] == 'K'))
        {
            sum++;
            break;
        }
    }
    cout << sum << endl;
    return 0;
}

正文完
 0