美文网首页
242. Valid Anagram

242. Valid Anagram

作者: 衣介书生 | 来源:发表于2018-02-27 08:59 被阅读12次

    题目分析

    题目链接,登录 LeetCode 后可用
    这道题目是让我们判断一个字符串是不是另一个字符串的异序字符串。
    第一个思路就是将字符串转换成字符数组,然后进行排序,之后再重组成字符串进行比较即可。
    第二个思路就是利用 HashMap。

    代码

    解法一

    class Solution {
        public boolean isAnagram(String s, String t) {
            if(s == null || t == null || s.length() != t.length()) {
                return false;
            }
            char[] schar = s.toCharArray();
            char[] tchar = t.toCharArray();
            
            Arrays.sort(schar);
            Arrays.sort(tchar);
            
            String s1 = new String(schar);
            String t1 = new String(tchar);
            
            if(s1.equals(t1)) {
                return true;
            } else {
                return false;
            }
        }
    }
    

    解法二

    class Solution {
        public boolean isAnagram(String s, String t) {
            if(s == null || t == null || s.length() != t.length()) {
                return false;
            }
            Map<Character, Integer> hashmap = new HashMap<Character, Integer>();
            for(char c : s.toCharArray()) {
                if(hashmap.containsKey(c)) {
                    hashmap.put(c, hashmap.get(c) + 1);
                } else {
                    hashmap.put(c, 1);
                }
            }
            for(char c : t.toCharArray()) {
                // 没有相对应的字母或者有相对应的字母但是数目不足
                if(!hashmap.containsKey(c) || (hashmap.containsKey(c) && hashmap.get(c) == 0)) {
                    return false;
                } else {
                    hashmap.put(c, hashmap.get(c) - 1);
                }
            }
            return true;
        }
    }
    

    相关文章

      网友评论

          本文标题:242. Valid Anagram

          本文链接:https://www.haomeiwen.com/subject/srhpxftx.html