当前位置: 首页 > news >正文

P3741 honoka的键盘

题目背景

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

题目描述

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

输入格式

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

第二行给出一个字符串 s s s

输出格式

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

1.题目分析

输入一段指定长度的字符串,计算出现VK的次数,可以修改一次,是VK的数量最大化。
值得一提的是,需要先把字符串中的VK去除,再遍历,找到VV或者KK,计数一次,跳出循环即可。
去除的目的是为了,寻找KK和VV时,不影响结果的判断。

2.题目思路

输入一段字符串,判断相邻两个字符是否为VK,如果是,将这两个元素置为零,计数器加一。
第二轮循环,判断剩余元素中是否出现KK和VV,出现说明可以修改一次,得到VK,让计数器加一后跳出循环。

值得一提的是,要杜绝数组索引越界的情况。

3.代码演示

#include <stdio.h>int main() {int n;scanf("%d", &n);char str[n];scanf("%s", str);int cnt = 0;for (int i = 0; i < n; ++i) {//统计VK的数量//防止索引越界if (i + 1 < n) {if (str[i] == 'V' && str[i + 1] == 'K') {cnt++;//把VK消除str[i] = 0;str[i + 1] = 0;}}}for (int i = 0; i < n; ++i) {//修改vv kk的情况//防止索引越界if (i + 1 < n) {//修改 vv 和 kk的情况if (str[i] == 'V' && str[i + 1] == 'V') {cnt++;break;} else if (str[i] == 'K' && str[i + 1] == 'K') {cnt++;break;}}}printf("%d", cnt);return 0;
}
http://www.lryc.cn/news/121516.html

相关文章:

  • 编写第一个 React Native 程序
  • AI:03-基于深度神经网络的低空无人机目标检测图像识别的研究
  • Arcgis将一个shp依照属性表导出为多个shp
  • LeetCode.26,27,88三题-双指针的运用
  • 【Django】招聘面试管理01 创建项目运行项目
  • C# 数据类型
  • 竞赛项目 深度学习手势识别算法实现 - opencv python
  • 前端进阶html+css04----盒子模型
  • Go Web--Go Module
  • Spring Boot 统一功能处理(拦截器实现用户登录权限的统一校验、统一异常返回、统一数据格式返回)
  • P4058 [Code+#1] 木材
  • Python学习笔记第五十二天(Pandas 安装)
  • 分布式搜索ElasticSearch-ES(一)
  • react学习笔记——3. jsx语法规则
  • MySQL分表实现上百万上千万记录分布存储的批量查询设计模式
  • 射频入门知识-1
  • 基于注解函数式编程实现组件解耦设计
  • 并查集、树状数组
  • ES6中Null判断运算符(??)正确打开方式-
  • java的内存模型
  • 基于 CentOS 7 构建 LVS-DR 群集 配置nginx负载均衡
  • CSS练习
  • 基于深度学习的3D城市模型增强【Mask R-CNN】
  • LabVIEW对并行机器人结构进行建模仿真
  • 【算法题】1281. 整数的各位积和之差
  • (一)ES6 介绍
  • 窥孔优化(Peephole Optimization)
  • Docker安装ElasticSearch/ES 7.4.0
  • 无涯教程-Perl - readline函数
  • 类与对象(入门)