A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
  输入格式:输入有两行,分别为两个单词。
  输出格式:输出只有一个字母Y或N,分别表示Yes和No。


import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

        public static void main(String[] args) throws Exception {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                String s1 = br.readLine();
                String s2 = br.readLine();
                if (s1.length() != s2.length()) {
                        System.out.println("N");
                        return;
                }
                int[] count1 = new int[26];
                int[] count2 = new int[26];
                char[] c1 = s1.toCharArray();
                char[] c2 = s2.toCharArray();
                for (int i = 0; i < c2.length; i++) {
                        if (c1 > 90)
                                count1[c1 - 97]++;
                        else
                                count1[c1 - 65]++;
                        if (c2 > 90)
                                count2[c2 - 97]++;
                        else
                                count2[c2 - 65]++;
                }
                for (int i = 0; i < count1.length; i++) {
                        if (count1 != count2) {
                                System.out.println("N");
                                return;
                        }
                }
                System.out.println("Y");
        }

}

4 个回复

正序浏览
把大写的 当小写的处理,以前写的不够严谨。
回复 使用道具 举报
if语句中,c1>90是什么意思
回复 使用道具 举报
楼主好人,学习了~
回复 使用道具 举报
不错不错,赞一个{:3_53:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马