标签:
问题描述
Anagrams指的是具有如下特性的两个单词:在这两个单词当中,
每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、
“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。
每一个单词的长度不会超过80个字符,而且是大小写无关的。
输入格式:输入有两行,分别为两个单词。
输出格式:输出只有一个字母Y或N,分别表示Yes和No。
输入输出样例
样例输入
Unclear
Nuclear
样例输出
Y
代码:
import java.util.*;
public class Anagrams {
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
String A=in.next();
String B=in.next();
char a[]=A.toLowerCase().toCharArray(); // 先转化为小写的,后转化为数组
char b[]=B.toLowerCase().toCharArray(); // 同上
int temp1[]=new int[26]; // 总共共有26个字母,temp1,temp2分别存储字母
int temp2[]=new int[26];
for(int i=0;i<a.length;i++)
{
temp1[a[i]-‘a‘]++; // 字母出现的次数
temp2[b[i]-‘a‘]++;
}
for(int i=0;i<26;i++)
{
if(temp1[i]!=temp2[i])
{
System.out.print("N");
System.exit(0); // 系统退出
}
}
System.out.print("Y");
}
}
运行结果:
注:本题的关键在于将字符串转化为字符数组,字母出现的次数不会超过26个,定义一个长度为26的整形数组,用来存储字母。
标签:
原文地址:http://www.cnblogs.com/pwhit/p/5072655.html