Valid Anagram
Problem
Given two strings s
and t
, return true
if t
is an anagram of s, and false
otherwise.
An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
Example 1:
Input: s = "anagram", t = "nagaram"
Output: true
Example 2:
Input: s = "rat", t = "car"
Output: false
Constraints:
1 <= s.length, t.length <= 5 * 104
s and t consist of lowercase English letters.
Follow up: What if the inputs contain Unicode characters? How would you adapt your solution to such a case?
Solution
- HashMap
- Time: O(n)
- Space: O(n)
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
hashmap_s = {}
hashmap_t = {}
for c in s:
if c not in hashmap_s:
hashmap_s[c] = 0
hashmap_s[c] += 1
for c in t:
if c not in hashmap_t:
hashmap_t[c] = 0
hashmap_t[c] += 1
return hashmap_s == hashmap_t