betway必威体育app官网先password

古代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");
        
    }
    

}

Post Author: admin

发表评论

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