HDOJ 1048 The Hardest Problem Ever(加密解密类)

Problem Description
Julius Caesar lived in a time of danger and intrigue. The hardest situation Caesar ever faced was keeping himself alive. In order for him to survive, he decided to create one of the first ciphers. This cipher was so incredibly sound, that no one could figure it out without knowing how it worked.
You are a sub captain of Caesar’s army. It is your job to decipher the messages sent by Caesar and provide to your general. The code is simple. For each letter in a plaintext message, you shift it five places to the right to create the secure message (i.e., if the letter is ‘A’, the cipher text would be ‘F’). Since you are creating plain text out of Caesar’s messages, you will do the opposite:

Cipher text
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Plain text
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

Only letters are shifted in this cipher. Any non-alphabetical character should remain the same, and all alphabetical characters will be upper case.

Input
Input to this problem will consist of a (non-empty) series of up to 100 data sets. Each data set will be formatted according to the following description, and there will be no blank lines separating data sets. All characters will be uppercase.

A single data set has 3 components:

Start line - A single line, “START”

Cipher message - A single line containing from one to two hundred characters, inclusive, comprising a single message from Caesar

End line - A single line, “END”

Following the final data set will be a single line, “ENDOFINPUT”.

Output
For each data set, there will be exactly one line of output. This is the original message by Caesar.

Sample Input
START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT

Sample Output
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE

就是一个加密解密的过程;

import java.util.Scanner;

public class Main{
    static char[] ctext =new char[26];
    static char[] ptext =new char[26];
    public static void main(String[] args) {
        ctet();
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str = sc.nextLine();
            if(str.equals("ENDOFINPUT")){
                break;
            }
            //System.out.println("str="+str);
                String strs = sc.nextLine();
            //  System.out.println("strs="+strs);
                for(int i=0;i<strs.length();i++){
                    if(strs.charAt(i)>='A'&&strs.charAt(i)<='Z'){
                        for(int j=0;j<ctext.length;j++){
                            if(strs.charAt(i)==ctext[j]){
                                System.out.print(ptext[j]);
                                break;
                            }
                        }

                    }else{
                        System.out.print(strs.charAt(i));
                    }

                }
                System.out.println();
//              String a = sc.nextLine();
//              System.out.println("a = "+a);
            String s = sc.nextLine();
            //System.out.println("s = "+s);

        }

    }
    private static void ctet() {
        int k=0;
        for(int i='A';i<='Z';i++){
            ctext[k++]=(char)i;
        }
        String str = "V W X Y Z A B C D E F G H I J K L M N O P Q R S T U";
        String strs[] = str.split(" +");
        k=0;
        for(int i='A';i<='Z';i++){
            ptext[k] =strs[k].charAt(0);
            k++;
        }
    }

}
时间: 2024-09-12 03:20:06

HDOJ 1048 The Hardest Problem Ever(加密解密类)的相关文章

PHP加密解密类实例分析

  这篇文章主要介绍了PHP加密解密类,实例分析了php实现加密与解密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了PHP加密解密类.分享给大家供大家参考.具体分析如下: 这段代码支持 数组加密 , 密文有效期, 各种对称加密 其中参数如下: * @use ption::en($string, $key); * @param String $string 需要加密的字串 * @param String $skey 密钥 * @param int $expiry 密文有效

一个PHP针对数字的加密解密类

 这篇文章主要介绍了一个PHP针对数字的加密解密类,该类仅支持加密数字.比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密,需要的朋友可以参考下 代码如下: <?php /**  * 加密解密类  * 该算法仅支持加密数字.比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密.  * @author 深秋的竹子  * @version alpha  * @加密原则 标记长度 + 补位 + 数字替换  * @加密步骤:  * 将a-z,A-Z,0-9 62个字符打乱,

Java实现MD5加密解密类

首先说明一下系统自带的MD5加密:           public final static String MD5(String s) {       char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};              try {           byte[] btInput = s.getBytes();           // 获得MD5摘要算法的 Messa

基于php实现的php代码加密解密类完整实例_php技巧

本文实例讲述了基于php实现的php代码加密解密类.分享给大家供大家参考,具体如下: php 代码加密类,大家可以根据自己的需求进行修改,原类如下,该实例在ubuntu下测试没有问题. <?php class Encryption{ private $c='';//存储密文 private $s='',$q1,$q2,$q3,$q4,$q5,$q6;//存储生成的加密后的文件内容 //如果不设置一个值,isset会表示不存在: private $file='';//读取文件的路径 private

PHP加密解密类实例分析_php技巧

本文实例讲述了PHP加密解密类.分享给大家供大家参考.具体分析如下: 这段代码支持 数组加密 , 密文有效期, 各种对称加密 其中参数如下: * @use ption::en($string, $key); * @param String $string 需要加密的字串 * @param String $skey 密钥 * @param int $expiry 密文有效期, 加密时候有效, 单位 秒,0 为永久有效 * @return String 1. php代码如下: /* * -工具库-加

一个PHP针对数字的加密解密类_php实例

复制代码 代码如下: <?php/** * 加密解密类 * 该算法仅支持加密数字.比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密. * @author 深秋的竹子 * @version alpha * @加密原则 标记长度 + 补位 + 数字替换 * @加密步骤: * 将a-z,A-Z,0-9 62个字符打乱,取前M(数字最大的位数)位作为 标记长度字符串,取第M+1 到第M+10位为数字替换字符串,剩余的为补位字符串 * 1.计算数字长度n,取乱码的第n位作为标记长度. *

PHP实现加强版加密解密类实例_php技巧

本文实例讲述了PHP实现加强版加密解密类.分享给大家供大家参考.具体如下: <?php class Ender{ private $enkey;//加密解密用的密钥 private $rep_char='#'; //替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的, //这里可以用一个允许的字符作为替换. //构造参数是密钥 public function __construct($key=''){ if(!$key){ $this->enkey=$key; } } //设置

[C#] 常用工具类——加密解密类

using System; using System.Configuration; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using S

DES加密解密类

1 /// <summary> 2 /// DES加密/解密类. 3 /// </summary> 4 public class HXEncrypt 5 { 6 public HXEncrypt() 7 { 8 } 9 10 #region DES加密 11 12 13 #region ========加密======== 14 15 /// <summary> 16 /// 加密 17 /// </summary> 18 /// <param nam