古代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. Win7上安装Oracle数据库

    由于ORACLE并没有FOR WIN7的版本,必须下载for vista_w2k8这个版本,将oralce 10G的安装镜像解压到硬盘,然后修改安装目录下的rehost.xml和oraparam.in ...

  2. GDB 使用小结

    GDB 使用小结 Gdb 不用说,两个字,非常强大 >.<,我最讨厌不识数的人了 本文适合GDB 初学和没学过的,如果你懂了,可以相互交流 既然说它很强大,它强大在哪里呢? 一般情况下,大 ...

  3. 神奇的Object.defineProperty

    vue.js和avalon.js 都是通过它实现双向绑定的. 对象是由多个名/值对组成的无序的集合.对象中每个属性对应任意类型的值.定义对象可以使用构造函数或字面量的形式: var obj={}; o ...

  4. 用Python利用pyFirmata控制Arduino实现Blink

    2018-03-2809:20:44 arduino中有相应的库 1.安装pyFirmata包 pip install pyFirmata 在python2.7或python3.X下都可以执行. py ...

  5. 生产环境4.3.5jboss内存调优

    1.查看jboss的监控工具 http://XXX/jmx-console/htmladaptor 2.查看jvm的监控工具 jdk\bin jvisualvm.exe jmc.exe 3.查看jbo ...

  6. python学习笔记(2)——练习小程序之 " input " 隐藏陷阱

    练习小程序之 ----------" input " 隐藏陷阱 age=input('please enter your age:') if age>=18: print(' ...

  7. POJ_1088_(dp)(记忆化搜索)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 95792   Accepted: 36322 Description ...

  8. 继 S-HR之代码创建临时表并插入数据 完整功能之员工职业信息变更报表

    目的示例1: 制作员工职业信息报表[S-HR系统的报表其实就是列表o.0,醉了] EcirrWithPP.js shr.defineClass("shr.custom.EcirrWithPP ...

  9. UVA-227 Puzzle(模拟)

    题目: 题目浏览传送门 题意: 给出一个5*5的方格,里边有一个格子是空的,现在给出一串指令,A->空格向上移动,B->空格向下移动,R->空格向右移动,L->空格向左移动. ...

  10. Python使用Flask框架,结合Highchart,搭配数据功能模块,加载 HTML 表格数据

    参考链接:https://www.highcharts.com.cn/docs/data-modules 1.javascript代码 var chart = Highcharts.chart('co ...