古代password

个人信息:就读于燕大本科软件project专业 眼下大三;

本人博客:google搜索“cqs_2012”就可以;

个人爱好:酷爱数据结构和算法。希望将来从事算法工作为人民作出自己的贡献;

编程语言:C++ 和 Java ;

编程坏境:Windows 7 专业版 x64;

编程工具:vs2008;

制图工具:office 2010 powerpoint;

硬件信息:7G-3 笔记本;

真言

真想骂街了。缺少共同的人机,再用你就真傻了。白练,你被淘汰了

题目

古代password

总时间限制:
1000ms
内存限制:
65536kB
描写叙述
古罗马帝王有一个包含各种部门的强大政府组织。当中有一个部门就是保密服务部门。

为了保险起见,在省与省之间传递的关键文件里的大写字母是加密的。

当时最流行的加密方法是替换和又一次排列。


替换方法是将全部出现的字符替换成其他的字符。

有些字符会碰巧替换成它自己。比如:替换规则能够是将'A' 到 'Y'替换成它的下一个字符,将'Z'替换成 'A'。假设原词是 "VICTORIOUS" 则它变成 "WJDUPSJPVT"。


排列方法改变原来单词中字母的顺序。比如:将顺序 <2, 1, 5, 4, 3, 7, 6, 10, 9, 8> 应用到 "VICTORIOUS" 上。则得到"IVOTCIRSUO"。

人们非常快意识到单独应用替换方法或排列方法,加密是非常不保险的。可是假设结合这两种方法。在当时就能够得到非常可靠的加密方法。

所以。非常多重要信息先使用替换方法加密,再将加密的结果用排列的方法加密。用两中方法结合就能够将"VICTORIOUS" 加密成"JWPUDJSTVP"。


考古学家近期在一个石台上发现了一些信息。初看起来它们毫无意义,所以有人设想它们可能是用替换和排列的方法被加密了。人们试着解读了石台上的password。如今他们想检查解读的是否正确。他们须要一个计算机程序来验证她,你的任务就是写这个验证程序。








输入
输入有两行。

第一行是石台上的文字。

文字中没有空格,而且仅仅有大写英文字母。第二行是被解读出来的加密前的文字。第二行也是由大写英文字母构成的。

两行字符数目的长度都不超过计划100。

输出
假设第二行经过某种加密方法后能够产生第一行的信息,输出 "YES",否则输出"NO"。 

代码

import java.io.*;
import java.util.*; public class Main
{
public static void main(String args[]) throws Exception
{
Scanner cin = new Scanner(System.in);
String a,b; a = cin.next();
b = cin.next();
my_2820(a,b); cin.close(); } public static void my_2820(String a,String b)
{
int i;
char c;
Integer number ;
boolean find,result;
HashMap<Character, Integer> myHash = new HashMap<Character,Integer>() ;
for(i=0;i<b.length();i++)
{
c = b.charAt(i);
c++;
if(c>'Z')
c= 'A'; find = myHash.containsKey(c);
if(find == false)
{
myHash.put(c, 1);
}
else
{
number = myHash.get(c);
myHash.remove(c);
myHash.put( c, number+1);
}
}
find = true;
result = true; for(i=0;i<a.length();i++)
{
find = myHash.containsKey(a.charAt(i));
if(find == false)
{
result = false ;
break;
}
else {
number = myHash.get(a.charAt(i)) ;
myHash.remove(a.charAt(i)) ;
if(number > 1)
myHash.put( a.charAt(i), number-1) ;
} }
if(result == false)
System.out.println("NO");
else System.out.println("YES"); } }

古代password的更多相关文章

  1. 打开程序总是会提示“Enter password to unlock your login keyring” ,如何成功关掉?

    p { margin-bottom: 0.1in; line-height: 120% } 一.一开始我是按照网友所说的 : rm -f ~/.gnome2/keyrings/login.keyrin ...

  2. your password has expired.to log in you must change it

    今天应用挂了,log提示密码过期.客户端连接不上. 打开mysql,执行sql语句提示密码过期 执行set password=new password('123456'); 提示成功,但客户端仍然连接 ...

  3. MySql Access denied for user 'root'@'localhost' (using password:YES) 解决方案

    关于昨天下午说的MySQL服务无法启动的问题,解决之后没有进入数据库,就直接关闭了电脑. 今早打开电脑,开始-运行 输入"mysql -uroot -pmyadmin"后出现以下错 ...

  4. [上架] iOS "app-specific password" 上架问题

    当你的 Apple ID 改用双重认证密码时,上架 iOS App 需要去建立一个专用密码来登入 Apple ID 才能上架. 如果使用 Application Loader 上传时,得到这个讯息: ...

  5. [LeetCode] Strong Password Checker 密码强度检查器

    A password is considered strong if below conditions are all met: It has at least 6 characters and at ...

  6. mysql 错误 ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number 解决办法

    MySQL创建用户(包括密码)时,会提示ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number: 问题原因: ...

  7. phpmyadmin #1045 - Access denied for user 'root'@'localhost' (using password: NO)

    phpmyadmin访问遇到1045问题 #1045 - Access denied for user 'root'@'localhost' (using password: NO) 解决办法 找到p ...

  8. 保留password模式文本框textbox内的数据不丢失。

    在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号),就没有了! protected override ...

  9. Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes

    Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes http://blog.csdn.n ...

随机推荐

  1. css样式获取及兼容性(原生js)

    类选择器兼容性 getbyclass()类选择器,在IE8及以下均不可用. // 类选择器的兼容性 function getbyclass(parentName,Name){ var parentNa ...

  2. hexo博客域名重复提交问题

    之前电脑重装系统,导致我的博客也忘记备份了.呜呜 期间试过hexo的next主题,虽然很好看,但是一直出问题,最终又恢复到了原来的主题,还是原来的配方,还是原来的味道 记录: 一.加载域名管理器 二. ...

  3. Verification Mind Games---how to think like a verifier像验证工程师一样思考

    1. 有效的验证需要验证工程师使用不同于设计者的思维方式思考问题.具体来说,验证更加关心在严格遵循协议的基础上发现设计里面的bug,搜索corner cases,对设计的不一致要保持零容忍的态度. m ...

  4. centos上安装supervisor来管理dotnetcore等应用程序

    supervisor 介绍: 这是一款用python编写的进程管理工具,可以守护他管理的所有进程,防止异常退出,以及提供一个可视化的web界面来手动管理,打开关闭重启各种应用,界面如下: 关于在cen ...

  5. oracle数据库过期

    本文转载自http://soft.chinabyte.com/database/6/12320006.shtml[来源:比特网 作者:悠虎] 由于Oracle11G的新特性所致,经常会遇到使用sqlp ...

  6. Spring框架系列(四)--IOC控制反转和DI依赖注入

    背景: 如果对象的引用或者依赖关系的管理由具体对象完成,代码的耦合性就会很高,代码测试也变得困难.而IOC可以很好的解决这个问题,把这 些依赖关系交给框架或者IOC容器进行管理,简化了开发. IOC是 ...

  7. 部署web服务器的配置——补充mysql和tomcat

    今天想到了关于mysql的一些配置,以后关于配置mysql和tomcat相关的内容也会补充在这里. tomcat: 1. 更改内存(要设置tomcat内存,解决内存溢出的问题):安装版tomcat,打 ...

  8. flex 三列布局

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. 最大子段和(洛谷P1115,动态规划递推)

    洛谷题目链接 题目赋值出来格式有问题,所以我就只放题目链接了 下面为ac代码 #include<bits/stdc++.h> #define ll long long using name ...

  10. 洛谷——P2827 蚯蚓

    P2827 蚯蚓 题目描述 本题中,我们将用符号 \lfloor c \rfloor⌊c⌋ 表示对 cc 向下取整,例如:\lfloor 3.0 \rfloor = \lfloor 3.1 \rflo ...