博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hust 1570 Lazy. Lazy. Laaaaaaaaaaaazy!
阅读量:4570 次
发布时间:2019-06-08

本文共 1040 字,大约阅读时间需要 3 分钟。


 

链接

题意

给出三种按键,caplock,shift,nomal(像正常键盘操作一样) ,输入三串字符串,s1,s2,txt, s1表示是按大写键开时的输入,s2是关时的输入,一次能输入一个字符,问输出txt这串字符串最少需要按多少次按键,默认caplock键是关着的。

样例1解释,abc def defabc ,先按三次nomal,然后按一次caplock,再按三次nomal,所以ans=3+1+3=7;

样例2解释,abc def abcdef, 先按一次caplock,按三次nomal,再按一次caplock,再按三次nomal,所以ans=1+3+1+3=8;

做法

用两个set存s1和s2,然后遍历一次txt,需要判断的就是当前的caplock状态是否和txt[i]的状态符合,如果符合则+1,不符合则+2,具体实现看代码,不懂请留言。

代码

#include
using namespace std;int main() { string s1, s2, txt; while (cin >> s1 >> s2 >> txt) { set
o, f; int ans = 0, i, flag = 0; for (char c : s1) o.insert(c); for (char c : s2) f.insert(c); for (i = 0; i < txt.size(); i++) { if (o.count(txt[i])) if (flag) ans++; else if (ans += 2, o.count(txt[i + 1])) flag = 1; if (f.count(txt[i])) if (!flag) ans++; else if (ans += 2, f.count(txt[i + 1])) flag = 0; } cout << ans << endl; }}

转载于:https://www.cnblogs.com/zhien-aa/p/6726856.html

你可能感兴趣的文章
js中for和while运行速度比较
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
lua 函数
查看>>
Git的基本命令
查看>>
四平方和
查看>>
第十八周 12.27-1.2
查看>>
C# IP地址字符串和数值转换
查看>>
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>
C语言—— for 循环
查看>>
IBM lotus9.0测试版即将公测
查看>>
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>