洛谷 P3741 honoka的键盘
题目链接
思路
题中无非三种状况:
- VK,间接计数
- VV,扭转一个字符后计数
- KK,扭转一个字符后计数
- 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;}