1009: University
Time Limit: 1000 Sec Memory Limit: 64 MBSubmit: 25 Solved: 12
[ Submit][ Status][ Web Board]
Description
在大学里,很多单词都是一词多义,偶尔在文章里还要用引申义。这困扰Redraiment很长的时间。 他开始搜集那些单词的所有意义。他发现了一些规律,例如 “a”能用“e”来代替, “c”能用“f”来代替…… 现在他给出了字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。 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 E C F A J K L B D G H I V W Z Y M N O P Q R S T U X 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 e r w q t y g h b n u i o p s j k d l f a z x c v m
Input
本题包括多组测试数据。每组测试数据为一行:为仅由字母和空格组成的字符串(空格不变)。输入以单行“#”结束。
Output
对应每组测试数据,替换后输出它的引申义。
Sample Input
Ilttabaje zaujljg
#
Sample Output
Different meaning
HINT
报告参见http://acm.zjgsu.edu.cn/Report/1008/1008.html
Source
</pre><p>代码如下:</p><pre class="cpp" name="code">#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char a[26]= {'E','C','F','A','J','K','L','B','D','G','H','I','V','W','Z','Y','M','N','O','P','Q','R','S','T','U','X'};
char b[26]= {'e','r','w','q','t','y','g','h','b','n','u','i','o','p','s','j','k','d','l','f','a','z','x','c','v','m'};
char ch;
while ((ch=getchar())!='#')
{
if(ch>='A'&&ch<='Z')
ch=a[ch-65];
if(ch>='a'&&ch<='z')
ch=b[ch-97];
cout<<ch;
}
return 0;
}
运行结果:
学习心得:思维还是太过局限,刚开始仅仅只想到ascall码的规律,后面看了大神的做法,才发现可以从他给的题目入手,按他排的顺序找到其中规律,分别用两个数组保存他们的值,并且利用ascall码去找到储存它们的数组的某个位置。