Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python Program to Check if Two Strings are Anagram

  • Difficulty Level : Basic
  • Last Updated : 19 Oct, 2021

Question:

Given two strings s1 and s2, check if both the strings are anagrams of each other.
Examples: 

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

Input : s1 = "listen"
        s2 = "silent"
Output : The strings are anagrams.


Input : s1 = "dad"
        s2 = "bad"
Output : The strings aren't anagrams.

Solution:

Method #1 : Using sorted() function

Python provides a inbuilt function sorted() which does not modify the original string, but returns sorted string.
Below is the Python implementation of the above approach: 



Python




# function to check if two strings are
# anagram or not
def check(s1, s2):
     
    # the sorted strings are checked
    if(sorted(s1)== sorted(s2)):
        print("The strings are anagrams.")
    else:
        print("The strings aren't anagrams.")        
         
# driver code 
s1 ="listen"
s2 ="silent"
check(s1, s2)
Output
The strings are anagrams.

Method #2 : Using Counter() function

  • Count all the frequencies of 1st string and 2 and using counter()
  • If they are equal then print anagram

Python3




# Python3 program for the above approach
from collections import Counter
 
# function to check if two strings are
# anagram or not
def check(s1, s2):
   
    # implementing counter function
    if(Counter(s1) == Counter(s2)):
        print("The strings are anagrams.")
    else:
        print("The strings aren't anagrams.")
 
 
# driver code
s1 = "listen"
s2 = "silent"
check(s1, s2)
Output
The strings are anagrams.

Method #3 : Using set() function

  • Check if the length of both string are same
  • Validate if both strings have same elements
  • For uniformity, convert the elements to lower()
  • Can also be used on integers in string

Python3




'''\
Python3 program for implementation of checking string is anagram or not
using set function.
'''
 
def check(s1, s2):
 
    # Asserting length of string
    assert len(s1) == len(s2), 'The strings are not of same length'
     
    # Implementation of set function
    if set(s1.lower()) == set(s2.lower()):
      print("The strings are anagrams.")
    else:
      print("The strings aren't anagrams.")
     
    # one liner for above implementation
    # print('The strings are anagrams.') if set(s1.lower()) == set(s2.lower()) else print('The strings aren\'t anagrams.')
     
 
 
#Driver code
if __name__ == '__main__':
    word1, word2 = 'listen', 'silent'
    check(word1, word2)
Output
The strings are anagrams.



My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!