古代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. kali中的APT软件包处理工具(apt-get)、Debian软件包管理器(dpkg)、源代码压缩和Nessus安装实用指南

    写在前面的话 能看懂此博客的朋友,深信你有一定的Kali基础了. 使用APT软件包处理工具(apt-get).Debian软件包管理器(dpkg)来维护.升级和安装自定义及第三方应用程序 APT软件包 ...

  2. wordpress网站底部的运行时间是怎么设置的?

    别人网站底部显示的网站运行时间是什么设置的?是插件的效果吗? 不用插件,一段JS代码就可以实现同样的效果. 复制如下代码到 footer.php 页脚那里 <span id="runt ...

  3. 微信小程序组件解读和分析:四、icon图标

      icon图标组件说明: icon是一种图标格式,用于系统图标.软件图标等,这种图标扩展名为.icon..ico.常见的软件或windows桌面上的那些图标一般都是ICON格式的.在应用上面很多地方 ...

  4. Java 基础入门随笔(5) JavaSE版——函数重载

    1.函数 函数就是定义在类中具有特定功能的一段独立小程序,也称为方法. 定义函数的格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)         {      ...

  5. 用rownum先排序后分页

    今天突然想到rownum可以解决分页问题,于是做了各种实验,找个几个文章,最后有了一定成果. 现有表tablename,含有字段showorder,要求提取showorder的第11行到20行数据. ...

  6. Redis系列(八)--缓存穿透、雪崩、更新策略

    1.缓存更新策略 1.LRU/LFU/FIFO算法剔除:例如maxmemory-policy 2.超时剔除,过期时间expire,对于一些用户可以容忍延时更新的数据,例如文章简介内容改了几个字 3.主 ...

  7. 洛谷——P2236 [HNOI2002]彩票

    P2236 [HNOI2002]彩票 给你$m$个数,从中挑$n$个数,使得这$n$个数的倒数之和恰好等于$\frac{x}{y}$ 常见的剪纸思路: 如果当前的倒数和加上最小可能的倒数和$>$ ...

  8. ZOJ - 3987 - Numbers (大数 + 贪心)

    参考自:https://blog.csdn.net/u013534123/article/details/78484494 题意: 给出两个数字n,m,把n分成m份,使得以下最小 思路: 或运算只有0 ...

  9. Game Rank(NCPC 2016 大模拟)

    题目: The gaming company Sandstorm is developing an online two player game. You have been asked to imp ...

  10. Ubuntu---vim配置

    1. Linux g++开启C++11支持 1.1 使用vim打开.bashrc文件 sudo vim ~/.bashrc 1.2 在some more ls aliases注释块的地方添加: ali ...