WERTYU(WERTYU, UVa10082)

把手放在键盘上时,稍不注意就会往右错一 位。这样,输入Q会变成输入W,输入J会变成输 入K等。键盘如图所示。

输入一个错位后敲出的字符串(所有字母均大写),输出打字员本来想打出的句子。输入保 证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。

样例输入: O S, GOMR YPFSU/

样例输出: I AM FINE TODAY.

分析:每输入一个字符,都可以直接输出一个字符,因此getchar是输入的理 想方法。。问题在于:如何进行这样输入输出变换呢?一种方法是使用if语句或者switch语 句,如"if(c == ‘W‘) putchar(‘Q‘)"。但很明显,这样做太麻烦。一个较好的方法是使用常量数组。

#include<cstdio>
using namespace std;
int main(){
char s[]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;‘ZXCVBNM,./";
int i,c;
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;
}

还有其他使用常量数组的方法。例如,构造一个数组s,使得对于任意字符c, s[c]的值为 c"左边"的字符。这个方法也是可行的,但是在程序里输入这样一个s数组有些麻烦,还是本 题的策略更容易实现。常量数组并不需要指明大小,编译器可以完成计算。

原文地址:https://www.cnblogs.com/LOW-ctfer/p/10353156.html

时间: 2024-11-06 12:42:20

WERTYU(WERTYU, UVa10082)的相关文章

WERTYU(getchar()用法)

题目连接:http://acm.tju.edu.cn/toj/showp.php?pid=13681368.   WERTYU Time Limit: 1.0 Seconds   Memory Limit: 65536KTotal Runs: 3158   Accepted Runs: 1346 A common typing error is to place the hands on the keyboard one row to the right of the correct posit

POJ 2538 WERTYU(水题)

[题目简述]:题意很简单,没有trick. [分析]:其实这题还是挺有趣的,在 算法竞赛入门经典中也有这一题. 详见代码: // 120K 0Ms /* 边学边做 -- */ // 字符串:WERTYU #include<iostream> using namespace std; char *s = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; //注意这里的这个"\"要打两次,不然会被误认为

(Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题)  以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html “AOAPC I”是刘汝佳(大

华为交换机配置telnet和SSH登录设备(简单实用版)

Telnet是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样.可以在本地就能控制服务器.要开始一个telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,极大的提高了用户操作的灵活性. 测试拓扑图 配置telnet: 1.1普通认证登录

Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器

VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收器.执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作. 在内存分析上,Java VisualVM的最大好处是可通过安装Visual GC插件来分析GC(Gabage Collection)趋势.内存消耗详细状况. 一  Visual GC(监控垃圾回收器) Java Visu

静态网页框架设计首次体验(文章改)

根据教材与上网成功解决了Tomcat与Myeclipse的安装,同时熟悉了Java web创建项目到部署运行整个过程.今天起正式开始学习有关Java web的编程部分.Java web静态网页(HTML网页)的标记含义.基本语法的介绍到框架设计基本模板与案例,今天的学习的内容,让网页编程有了一个初步的框架.结合自身所在协会的情况,计划制作一个关于协会的网页,已有初步想法,望通过学习不断完善和修改协会网站.根据今天所学,并参考书本30页框架设计案例对网页进行初步搭建. 具体代码如下 TW.jsp:

Windows10 使用Virtual Box一启动虚拟机就蓝屏(错误代码SYSTEM_SERVICE_EXCEPTION)解决方案

原文:Windows10 使用Virtual Box一启动虚拟机就蓝屏(错误代码SYSTEM_SERVICE_EXCEPTION)解决方案 一打开虚拟机电脑就立马蓝屏重启,新建虚拟机也没用,然后就开始百度,百度上全说什么驱动不对,然后我就卸载升级各种驱动,然后各种重装VirtualBox,还是不行,搞了一两个小时,都快放弃了.决定上个google,终于看到一篇文章说是因为Hyper-V与Virtual Box冲突了,只需要在控制面板关闭就行.然后抱着试一试的心态. 首先我们先打开控制面板.按Wi

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

UWP-消息提示(仿Android)

原文:UWP-消息提示(仿Android) 在UWP中的消息提示框(一)中介绍了一些常见的需要用户主动去干涉的一些消息提示框,接下来打算聊聊不需要用户主动去干涉的一些消息提示框.效果就是像双击退出的那种提示框. 先说说比较简单的吧,通过系统Toast通知方式(和Android的Toast是有区别的额,更像Android里的Notification),关于这种方式,在这里就不贴代码了,MSDN上讲的很清楚(快速入门:发送 Toast 通知),需要注意的事作为应用内消息提示弹出框,应该不要带音效(有