LeetCode-242.Valid Anagram

Posted 月半榨菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-242.Valid Anagram相关的知识,希望对你有一定的参考价值。

Given two strings s and , write a function to determine if t is an anagram of s.

Example 1:

Input: s = "anagram", t = "nagaram"
Output: true

Example 2:

Input: s = "rat", t = "car"
Output: false

Note:
You may assume the string contains only lowercase alphabets.

Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?

 

使用map,时间复杂度O(n)

public boolean isAnagram(String s, String t) {//map my
        
        if(null==s&&null==t){
            return true;
        }
        if(null==s||null==t||s.length()!=t.length()){
            return false;
        }
        Map<Character,Integer> map = new HashMap<>();
        for (int i = 0; i < s.length(); i++) {
            char c= s.charAt(i);
            if(map.containsKey(c)){
                map.put(c,map.get(c)+1);
            }
            else{
                map.put(c,1);
            }
        }
        for (int i = 0; i < t.length(); i++) {
            char c= t.charAt(i);
            if(map.containsKey(c)){
                map.put(c,map.get(c)-1);
                if(map.get(c)==0){
                    map.remove(c);
                }
            }
            else{
                return false;
            }
        }
        return true;
    }

 

上面的方法具有普遍性,针对该题可以使用数组解决,因为只有26个小写字母,时间复杂度也是O(n)。

还可以使用排序的方法,但时间复杂度是O(nlogn)。

以上是关于LeetCode-242.Valid Anagram的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 242 Valid Anagram

[leetcode-242-Valid Anagram]

[leetcode]242.Valid Anagram

LeetCode 242 Valid Anagram

LeetCode242——Valid Anagram

leetcode 242. Valid Anagram