[Solved] Given two strings s and t, return true if t is an anagram of s, and false otherwise.

Question

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?

Python Solution

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        c = {}

        for i in s:
            if i not in c:
                c[i]=1
            else:
                c[i]+=1

        for i in t:
            if i not in c:
                return( False)
            else:
                c[i]-=1
                if c[i]<0:
                    return( False)

        for v in c.values():
            if v!=0:
                return(False)

        return (True)
Abhishek Sharma
Abhishek Sharma

Started my Data Science journey in my 2nd year of college and since then continuously into it because of the magical powers of ML and continuously doing projects in almost every domain of AI like ML, DL, CV, NLP.

Articles: 514

Leave a Reply

Your email address will not be published. Required fields are marked *