清朝password

古代password

个人音信:就读于燕京大学学本科科软件project专业 眼前大三;

小编博客:google搜索“cqs_2012”就可以;

个人爱好:青睐数据结构和算法。希望以往从事算法工作为平民作出本身的贡献;

编制程序语言:C++ 和 Java ;

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

编制程序工具:vs二〇〇九;

制图工具:office 二〇〇八 powerpoint;

硬件音信:7G-3 台式机;

真言

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

题目

古代password

总时间范围:
1000ms

内部存储器限制:
65536kB

描绘叙述
古秘Luli马皇帝有3个暗含各类机关的雄强政党协会。在这之中有三个部门就是保密服务机关。

韦德娱乐1946手机版,为了保证起见,在省与省内面传递的重庆大学文件里的大写字母是加密的。

当时最盛行的加密方法是替换和又一遍排列。
轮换方法是将全部涌出的字符替换来任何的字符。

稍稍字符会碰巧替换到它自身。比如:替换规则能够是将’A’ 到
‘Y’替换成它的下三个字符,将’Z’替换来 ‘A’。假若原词是 “VICTOEnclaveIOUS”
则它成为 “WJDUPSJPVT”。
排列方式改变原来单词中字母的相继。比如:将次第 <2, 1, 5, 4, 3, 7,
6, 10, 9, 8> 应用到 “VICTOCRUISERIOUS” 上。则赢得”IVOTCI奥迪Q5SUO”。

芸芸众生丰裕安心乐意识到独门行使替换方法或排列格局,加密是不行不有限支撑的。可是假使结合那二种办法。在即时就能够获取丰富可信的加密方法。

据此。万分多主要音讯先使用替换方法加密,再将加密的结果用排列的艺术加密。用两中艺术结合就能够将”VICTO瑞虎IOUS”
加密成”JWPUDJSTVP”。
考古学家近年来在贰个石台上发现了部分信息。初看起来它们毫无意义,所以有人设想它们只怕是用替换和排列的措施被加密了。人们试着解读了石台上的password。近日他们想检查解读的是否科学。他们无法不2个处理器程序来验证他,你的义务正是写这几个注脚程序。

输入
输入有两行。

首先行是石台上的文字。

文字中向来不空格,而且只是有大写英文字母。第③行是被解读出来的加密前的文字。第三行也是由大写英文字母构成的。
两行字符数目标长短都不抢先安顿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");
        
    }
    

}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图