Links
Go to my solution
Go to the question on LeetCode
My Thoughts
What Went Well
I knew how to approach the problem in multiple ways and implemented them all quickly.
Data Structure Description
Hash Map (Dictionary) - A data structure that stores a collection of keys, each to their respective values. Each key may only appear once.
Solution Statistics
Time Spent Coding
5 minutes
Time Complexity
O(n + m) - In the worst-case scenario, we must iterate through the entire length of t
, assigning it to have a length of m, resulting in the O(n + m) time complexity. We do not remove the m from the time complexity because it is not a constant and depends on the user’s input. It may be much larger than n, significantly affecting the time complexity.
Space Complexity
O(n) - We will, at most, store n elements, where n is the length of input string s
, resulting in the O(n) space complexity.
Runtime Beats
79.51% of other submissions
Memory Beats
98% of other sumbissions
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution(object):
def isAnagram(self, s, t):
# If s is longer than t, this code eliminates that edge case
if len(s) != len(t): return False
# character in s = frequency in s
charS = {}
# For the current character in string s, execute the code block
for c in s:
# Increment the current characters value by 1
charS[c] = charS.get(c,0) + 1
# For the current character in string t execute the code block
for c in t:
# Check if the current characters value is equal to 0
# If a character is not in the dictionary, then default to 0
if charS.get(c,0) == 0:
return False
charS[c] -= 1
return True