首页 > 数据结构 > Hash表 > hdu 2716 Message Decowding-Hash表-[解题报告]C++
2014
02-14

hdu 2716 Message Decowding-Hash表-[解题报告]C++

Message Decowding

问题描述 :

The cows are thrilled because they’ve just learned about encrypting messages. They think they will be able to use secret messages to plot meetings with cows on other farms.

Cows are not known for their intelligence. Their encryption method is nothing like DES or BlowFish or any of those really good secret coding methods. No, they are using a simple substitution cipher.

The cows have a decryption key and a secret message. Help them decode it. The key looks like this:

yrwhsoujgcxqbativndfezmlpk

Which means that an ‘a’ in the secret message really means ‘y’; a ‘b’ in the secret message really means ‘r’; a ‘c’ decrypts to ‘w’; and so on. Blanks are not encrypted; they are simply kept in place.

Input text is in upper or lower case, both decrypt using the same decryption key, keeping the appropriate case, of course.

输入:

* Line 1: 26 lower case characters representing the decryption key

* Line 2: As many as 80 characters that are the message to be decoded

输出:

* Line 1: 26 lower case characters representing the decryption key

* Line 2: As many as 80 characters that are the message to be decoded

样例输入:

eydbkmiqugjxlvtzpnwohracsf
Kifq oua zarxa suar bti yaagrj fa xtfgrj

样例输出:

Jump the fence when you seeing me coming

罪过罪过。。。。刷了个水题。。

练英语吧。。

题意:用第一行密码代替26个字母解密第二行句子。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char cha[26];
char str[80];
int main()
{
    while(cin>>cha)
    {
        getchar();
        gets(str);
        for(int i=0;i<strlen(str);i++)
        {
            if(str[i]>='a'&&str[i]<='z')
            {
                str[i]=cha[str[i]-'a'];
            }
            if(str[i]>='A'&&str[i]<='Z')
            {
                str[i]=cha[str[i]-'A']-'a'+'A';
            }
        }
        puts(str);
    }
    return 0;
}

 

解题转自:http://blog.csdn.net/amourjun/article/details/8805835