题目链接:UVa10082
把手放在键盘上,稍不注意就会往右错一位。这样,输入Q会变成输入W,输入J会变成输入K等。键盘如图所示。 输入一个错位后敲出来的字符串(所有字母均大写),输出打字员本来想打出的矩阵输入保证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。
多行输入 每行包括数字,空格,大写字母(除了Q,A,Z)或者是标点符号(除了“’”(L右面第2个)),标有单词的按键,如Tab,BackSp,Control等等不会出现。
你需要用每个字母或者符号左面的(在如图给出的QWERTY类型的键盘)那个按键内容替换他,输入的空格不作处理,依然输出空格。
本题关键在于如何进行输入输出变换。一种易想到的方法是使用if或switch语句进行特判,如if(c=‘W’)putchar(‘Q’),但这样处理的情况过多,步骤过于繁琐,故此方法不在考虑范围内。
一种既简单又高效的方法是打表,即使用常量数组,用数组中的每一个每一个值代表键盘上的一个键位,则其下标减一对应的值即为原想要打出的字符,打表也是一种在算法竞赛中常用的节约时间手段。
注意:C++中反斜线\与单引号’需要转义,即写成\\与\’。
#include<cstdio>
using namespace std;
int c,i;
char s[]={
"`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;\'ZXCVBNM,./'"};
//定义常量数组时无需指明大小,编译器会计算
int main()
{
while((c=getchar())!=EOF)
{
for(i=1;s[i] && s[i]!=c;i++);//找错位之后的字符在常量表中的位置
if(s[i]) putchar(s[i-1]);//如果找到,则输出它的前一个字符
else putchar(c);
}
return 0;
}
以上就是《UVa10082 WERTYU》的详细题解,如果您认为我的文章对您起到了帮助作用,恳请点赞关注支持一下,您的鼓励就是我前进的最大动力。
我是Horseman:一名正在成长的蒟蒻OIer,UVa题解系列持续更新中,感谢大家的鼓励支持。
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
我分析程序,一般首先是分析它的线程模型。看看一共有几个线程,各个线程都干了什么。但分析st-thread库,就比较迷茫了。因为它本身有个线程模块,其实是一个堆里的数据块,并没有真正的线程。我曾经怀疑,在st_ini里,有两次创建线程的机会,一个是一个idle_therad,一个是自带第一个线程。但仔细分析代码。还是没有真正的线程创建。莫非是外部创建线程,通过某种巧妙的方法,传给st库?看pub
注册组件@[email protected]等于一个配置文件,如果某个Java类上标注了这个注解,则表示这个类是一个配置类。@Bean将一个Java类装配到Spring的IOC容器中,默认是singleton。id默认是方法名。@[email protected]@ToStringpublic class Person(){ private String name; private Integer age;}@Configuration.
图像采样点集 给定一个二维区域DDD上的重要性密度III,在这个区域上找出一个采样的点集,使其局部密度正比于重要密度III。如下图所示,图片中亮的区域多采点,暗的区域少采点。 这篇文章,提出了一种新方法,可以有效地生成给定重要性密度的2D区域上的采样模式.Penrose切片被细分为多个层次,从而创建了足够数量的采样点。 这些点使用斐波那契数系统进行编号,并且这些数字用于针对重要性密度的局部值对样本进行阈值处理。 使用预先计算的校正向量用于改善采样模式的光谱特性。 该技术是确定性的,并且非常快。 采样
上篇我们讲解了创建用户以及基本的授权问题,下面我们来讲解权限包括对象权限和系统权限。 其实上节课我们讲解就是系统的权限,系统权限就是一些创建表了,表空间等等的系统的权限。 1. 系统权限 那么哪些权限是属于系统权限的呢? 上篇文章中我们已经提到了: 2. 对象权限 不同的用户拥有不同的表,那么如何让不同的用户可以访问彼此的表,这个权限就涉
选择需求分类废话少说直接上图第一张图: 2.此图搭配的日志格式是: log_format main '$remote_addr - $remote_user [$time_local] $http_host $request_method "$uri" "$query_string" ' '$status $body_...
属性查询即基于空间数据的属性数据的查询,通过用户提交SQL语言中的where语句定义的查询条件,对属性数据进行搜索,从而得到查询结果的操作。相关的类与接口与属性查询功能相关的类主要有QureyFilter、QueryDef、Cursor、FeatureCursor等。涉及的接口有IQueryFilter、IQueryDef、ICursor、IFeatureCursor以及IFeat...
微信小程序在线点餐外卖系统主要包含功能:微信登录、普通用户注册和登录、用户信息修改、用户密码修改;用户首页、菜品分类、产品浏览、增加数量、减少数量、订餐、收藏、地址管理、评论、广告设置等;提供项目源代码(小程序+接口+后台)。开发工具:IDEA2020开发环境:JDK1.8 +Tomcat8数据库:Mysql8小程序后台...
1、不要在一个MFC程序中使用_beginthreadex()或CreateThread()。 这句话的意思是由于AfxBeginThread()是MFC封装的启动线程的函数,里面包含了很多和MFC相关的启动信息,而且封装了一些常用的操作,使用起来也比较简便。而用另外两个函数就需要程序员对类型,安全性检查进行更多的思考! 2、用_beginthreadex()函数应该是最佳选择,因为_be
本菜鸟的秋招结束,这里做一个简单的小结,希望能对师弟师妹们有所帮助。个人情况,女生,本硕西电,非科班(本科通信+研究生转cv),简历里面没啥亮眼的地方,无论文,有几个项目+比赛。各种条件都一般,秋招投递的基本都是cv算法,被虐了三个月…(没错,就是今年最爆炸的cv算法…)好在运气凑合,至少找到工作了,感恩~由于自己准备的比较晚,大概六月底才开始准备,七月初海投了一波提前批,提前批很多都是免笔试...
安装步骤本文档主要讲解当我们编译好固件后,需要将我们的固件代码下载到flash里运行,这个时候需要用到我们Dialog DA14585专用的固件下载工具SmartSnippets Toolbox,这个工具除了下载固件代码外还有烧录OTP、测量电流等功能。首先,需要登录进入Dialog官网https://support.dialog-semiconductor.com,并且进入以下界面。 点击...
Visual Studio(VS)的基本使用本文中1-10章节是我观看黄强老师视频所记录的笔记,详细内容请观看视频:30分钟学会Visual Studio 2017文章目录Visual Studio(VS)的基本使用1. VS下载2. 新建解决方案、项目、编译、执行3. VS窗口布局4. 设置VS字体、颜色、行号等5. 项目中新建文件、筛选器、文件夹6. VS设置断点等调试技巧7. 代码添加书签、快速查找、定位8. Debug和Release项目输出9. VS设置包含头文件目录和库目录10. VS快