黑马程序员技术交流社区

标题: 分享一个小算法,数组的一个妙用 [打印本页]

作者: hdhdhd    时间: 2015-10-21 09:35
标题: 分享一个小算法,数组的一个妙用
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");
        }

}


作者: 耀阳圣尊    时间: 2015-10-21 09:41
不错不错,赞一个{:3_53:}
作者: 校长    时间: 2015-10-21 10:35
楼主好人,学习了~
作者: polarfox17    时间: 2015-10-21 11:54
if语句中,c1>90是什么意思
作者: hdhdhd    时间: 2015-10-21 12:32
把大写的 当小写的处理,以前写的不够严谨。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2