University

University

时间: 1000ms        内存:64M

描述:

在大学里,很多单词都是一词多义,偶尔在文章里还要用引申义。这困扰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

输入:

本题包括多组测试数据。
每组测试数据为一行:为仅由字母和空格组成的字符串(空格不变)。
输入以单行“#”结束。

输出:

对应每组测试数据,替换后输出它的引申义。

示例输入:

Ilttabaje zaujljg
#

示例输出:

Different meaning

提示:

参考答案(内存最优[0]):

#include<stdio.h> 
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='\n',qian,hou;
  qian=ch;
  ch=getchar();
   do
 {
  if(ch>='A'&&ch<='Z')   
    printf("%c",a[ch-65]); 
   else if(ch>='a'&&ch<='z')
       printf("%c",b[ch-97]); 
	   else if(ch==' '||ch=='\n')
	   printf("%c",ch);
	   hou=ch;
	   ch=getchar();
 }while(ch!='\n'||qian!='\n'||hou!='#');  
} 

参考答案(时间最优[0]):

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
	char R[2][27]={"ECFAJKLBDGHIVWZYMNOPQRSTUX",
		           "erwqtyghbnuiopsjkdlfazxcvm"};
	char c[1000];
	int i;
	gets(c);
	while(strcmp(c,"#"))
	{
		for(i=0;c[i]!='\0';i++)
		{
			if(c[i]>='A'&&c[i]<='Z')
				c[i]=R[0][c[i]-'A'];
			if(c[i]>='a'&&c[i]<='z')
				c[i]=R[1][c[i]-'a'];
		}
		cout<<c<<endl;
		gets(c);
	}
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞