Lc242_IsAnagram

 1public class IsAnagram {
2
3    /**
4     * 242. 有效的字母异位词
5     * 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
6     * <p>
7     * 示例 1:
8     * <p>
9     * 输入: s = "anagram", t = "nagaram"
10     * 输出: true
11     * 示例 2:
12     * <p>
13     * 输入: s = "rat", t = "car"
14     * 输出: false
15     * 说明:
16     * 你可以假设字符串只包含小写字母。
17     * <p>
18     * 进阶:
19     * 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
20     *
21     * @param s
22     * @param t
23     * @return
24     */

25    public static boolean isAnagram(String s, String t) {
26        /**
27         * 用一个数组记录s出现的位置和次数
28         * 在用这个数组建议t出现的位置和次数
29         *如果最后记录的数组有一个位置不为0 则证明不包含
30         */

31        int record[] = new int[26];
32        for (int i = 0 ; i<s.length();i++){
33            record[s.charAt(i)-'a']++;
34        }
35
36        for (int i = 0 ; i<t.length();i++){
37            record[t.charAt(i)-'a']--;
38        }
39
40        for(int i = 0; i< record.length;i++){
41            if(record[i]!=0){
42                return false;
43            }
44        }
45        return true;
46
47    }
48
49    public static void main(String[] args) {
50
51       String  s = "anagram", t = "nagaram";
52        System.out.println(isAnagram(s,t));
53    }
54}
posted @ 2021-02-04 15:11  小傻孩丶儿  阅读(51)  评论(0编辑  收藏  举报