题目背景

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

题目描述

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

输入格式

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

第二行给出一个字符串 ss。

输出格式

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

输入输出样例

输入
2
VK
输出 1输入
2
VV
输出
1

说明/提示
对于 100%100% 的数据,1\le n\le 1001≤n≤100。

本题思路:
拿到题目先分析什么情况下才会结果增加,发现一共有种情况:
1: 当输入为VK时
2: 当输入为VV或者KK时
如果输入是以KV就无法在最多一次的情况下完成。
找到思路直接开敲!!

22分代码

#include<bits/stdc++.h>
using namespace std;
int main()
{char s[101];int n,sum=0;scanf("%d",&n);scanf("%s",s);for(int i=0;i<n-1;i++){if(s[i]=='V'&&s[i+1]=='K')sum++;else if(s[i]==s[i+1]){sum++;}}printf("%d",sum);return 0;
}

之后发现了问题所在,如果我将两个条件都放在一个for语句里面的话,例如VVK和VKK这样的话就会多加上一个,随即进行修改。

88分代码

#include<bits/stdc++.h>
using namespace std;
int main()
{char s[101];int n,sum=0;scanf("%d",&n);scanf("%s",s);for(int i=0;i<n-1;i++){if(s[i]=='V'&&s[i+1]=='K')sum++;}for(int j=0;j<n-1;j++){if(s[j]==s[j+1]){sum++;printf("%d",sum);return 0;}}printf("%d",sum);return 0;

我把两个条件分开后提交后发现还是有些测试点不能过去,最后用dev上进行测试,发现VKK不能过,最后得出结论,如果我这样写,在上一个for里面自加后在下一个for里面也会自加,但是如果我中间的K改为V的话,那么上面的for里面的条件就无法满足了,因此我需要把上面使用过的字符数组要在下面的循环内不能使用。

最后附上AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{char s[101];int n,sum=0;scanf("%d",&n);scanf("%s",s);for(int i=0;i<n-1;i++){if(s[i]=='V'&&s[i+1]=='K'){sum++;s[i]='1;s[i+1]='2;}}for(int j=0;j<n-1;j++){if(s[j]==s[j+1]){sum++;printf("%d",sum);return 0;}}printf("%d",sum);return 0;
}

拜拜!!!

洛谷P3741 honoka的键盘相关推荐

  1. 洛谷P3741 honoka的键盘Java题解

    这题的思路有俩: 思路1:将字符串转化成字符串数组,如何比对每相邻的值是否与VK相等,然后赋其他值,防止二次判断,这样先将VK找出,随后进行替换,如果出现VV或KK则替换一个即可变成VK,KV则不行 ...

  2. P3741 honoka的键盘 Java

    P3741 honoka的键盘 Java 题目: 说明: 本题目我采用的是将输入字符串转换为数组,这样方便使用数组名[i]来引用元素. 这道题我出错在:找到"VK"字符串后,并没有 ...

  3. 【洛谷】P3741 honoka的键盘 c++

    题目背景 honoka 有一个只有两个键的键盘. 题目描述 一天,她打出了一个只有这两个字符的字符串.当这个字符串里含有 VK 这个字符串的时候,honoka 就特别喜欢这个字符串.所以,她想改变至多 ...

  4. P3741 honoka的键盘(python)

    题目背景 honoka 有一个只有两个键的键盘. 题目描述 一天,她打出了一个只有这两个字符的字符串.当这个字符串里含有 VK 这个字符串的时候,honoka 就特别喜欢这个字符串.所以,她想改变至多 ...

  5. contains()+replaceFirst()进行substring计数(洛谷P3741题题解,Java语言描述)

    题目要求 P3741题目链接 分析 这题就别想复杂,其实很简单. 其实就是遇到VK就进行计数,并不再被统计(但不能让原本不相连的相连起来). 处理完VK以后,遇到VV或者KK就可以再一次counter ...

  6. 【OJ】洛谷字符串题单题解锦集

    题单简介 题目解析 P5733[深基6.例1]自动修正 P1914 小书童--密码 P1125 笨小猴 P1957 口算练习题 P5015 标题统计 P5734[深基6.例6]文字处理软件 P1308 ...

  7. 【入门5】字符串(今天刷洛谷了嘛)

    几道纯模拟题没有写,暂且先放一下 P5733 [深基6.例1]自动修正 #include<iostream> #include<algorithm> #include<c ...

  8. 洛谷——honoka的键盘

    题目链接:honoka的键盘 之前自己的思路不完善,只想着将"VV"改成"VK",没有想到"KK"也可以改成"VK".导 ...

  9. 洛谷-P3741-honoka的键盘

    honoka的键盘 - 洛谷 解题思路: 1.由题可得,给定一段字符串,然后查找里面VK相邻的情况,如果符合这个顺序,那么数量加1 2.条件是至多能改变1个字符,来增加VK的数量,分析情况,可知,已经 ...

最新文章

  1. python从零实习深度学习_月薪45K的深度程序员教你从零在Python中开发深度学习
  2. 脚手架koa2+mockjs
  3. lc171. Excel Sheet Column Number
  4. Python按行输出文件内容具体解释及延伸
  5. kotlin内联函数let、with、run、apply、also
  6. java数组拼字符串_java数组、字符串拼接
  7. autohotkey实例+懒人包_懒人福音——GitHub 热点速览 Vol.42
  8. STL14-set/multiset容器
  9. null对象访问static属性或方法
  10. tensorflow笔记2:TensorBoard
  11. TPC-C 中跑赢 Oracle 的 OceanBase,双 11 处理峰值达 6100 万次/秒!
  12. L2-014. 列车调度-PAT团体程序设计天梯赛GPLT
  13. 计算机毕业设计中民宿平台信息管理系统设计
  14. python def函数调用内容_基本的python,def函数和文本菜单的调用
  15. Oracle 提取汉子去除非汉子数据(保留标点符号)
  16. 电脑可以关机,不宜经常断电
  17. SQL语句:查询多表更新数据
  18. 代码比较工具DiffMerge的下载和使用
  19. 如何批量将 Word 文档转为 PDF 格式
  20. JavaScript全部替换 - js replaceAll()

热门文章

  1. 词向量模型之CBOW
  2. WEB前端 新手开始学习 6.21
  3. 0基础云服务器部署Stable Diffusion
  4. 娱乐行业怎么使用虚拟机器人提升财务工作效率
  5. 历时8个月,10w字!前端知识体系+大厂面试总结(基础知识篇)
  6. 电路计算机为什么要规定方向,为什么要在电路图规定电流的参考方向,实际方向有什么关系与...
  7. vim (整行,多行,一个单词)复制
  8. UE4_材质_UV选区采样
  9. @Configuration和@Bean注解
  10. 关于复刻潮牌奢侈品的一些理解