# Python program to check if two Strings are Anagram or not

## Check if The Two Strings are Anagram or not

Anagram program in python is when strings share the same no of characters and also the same characters then strings are called anagrams. The rearrangement of similar characters or letters in a string even if they don’t have the same meanings are anagrams. Only one strict rule is followed if we create anagrams of a string ‘count of every character available in the 1st string should be equal to the count of characters in the 2nd string for the same character. ## Anagram Program in Python

Two strings S1 and S2 are anagrams of one another if –

By re-arranging characters of string1 (s1) we can form string2 (s2) and vice versa ## Check if two Strings are Anagram or not in Python

### Algorithm

• Method 1: Sorts both string and check if the results are same or not
• Method 2: Uses counter method that gives results of individual counts of items present in the list, and compare them

### Method 1

• This method first converts both strings into lowercase
• We sort both of the strings
• We then compare both resultant strings
• If they are same then they must be anagrams
```# Anagram program in python# take user input
String1 = "Listen"
String2 = "Silent"

String1 = sorted(String1.lower())
String2 = sorted(String2.lower())

print("String1 after sorting: ", String1)
print("String2 after sorting: ", String2)

# check if now strings matches
if String1 == String2:
print('Strings are anagram')
else:
print('Strings are not anagram')
```

### Output:

```String1 after sorting:  ['e', 'i', 'l', 'n', 's', 't']
String2 after sorting:  ['e', 'i', 'l', 'n', 's', 't']
Strings are anagram
```

## Method 2

We use counter method from the collections library for this.

The counter method can be used as –

• For string: Listen
• Counter(string)

printing this counter string will give a result –

`Counter({'l': 1, 'i': 1, 's': 1, 't': 1, 'e': 1, 'n': 1})`

We can then compare both counters for both the strings.

```# Check if two Strings are Anagram or not in Pythonfrom collections import Counter

def check(s1, s2):
# printing counter
print(Counter(s1))
print(Counter(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.lower(), s2.lower())
```

### Output:

```Counter({'l': 1, 'i': 1, 's': 1, 't': 1, 'e': 1, 'n': 1})Counter({'s': 1, 'i': 1, 'l': 1, 'e': 1, 'n': 1, 't': 1})The strings are anagrams.
``` • Length of the string without using strlen() function : C | C++ | Java | Python
• Toggle each character in a string : C | C++ | Java | Python
• Count the number of vowels : C | C++ | Java | Python
• Remove the vowels from a String : C | C++ | Java | Python
• Check if the given string is Palindrome or not : C | C++ | Java | Python
• Print the given string in reverse order : C | C++ | Java | Python
• Remove all characters from string except alphabets : C | C++ | Java | Python
• Remove spaces from a string : C | C++ | Java | Python
• Remove brackets from an algebraic expression : C | C++ | Java | Python
• Count the sum of numbers in a string : C | C++ | Java | Python
• Capitalize the first and last character of each word of a string : C | C++ | Java | Python
• Calculate frequency of characters in a string : C | C++ | Java | Python
• Find non-repeating characters in a string : C | C++ | JAVA | Python
• Check if two strings are Anagram or not : C | C++ | Java | Python
• Replace a sub-string in a string: C | C++ | Java | Python
• Count common sub-sequence in two strings : C | C++ | Java | Python
• Check if two strings match where one string contains wildcard characters : C | C++ | Java | Python

### 5 comments on “Python program to check if two Strings are Anagram or not”

• SUMAN

from collections import Counter
def anagram(s):
return Counter(s);
s1,s2 = input().split(“,”);
str1 = anagram(s1);
str2 = anagram(s2);
if str1==str2 :
print(“Anagram”);
else :
print(“Not anagram”); 0
• SUMAN

s1,s2 = input().split(“,”);
str1 = sorted(s1.lower());
str2 = sorted(s2.lower());
if str1 == str2 :
print(“anagram”);
else :
print(“Not anagram”); 0
• nidhisingh151199

s1=input()
s2=input()
l1=[]
l2=[]
for i in s1:
l1.append(i.lower())
l1.sort()
for j in s2:
l2.append(j.lower())
l2.sort()
if(l1==l2):
print(“A”)
else:
print(“n”) 0
• nagavasavi2002

a=input()
b=input()
a=sorted(a.lower())
b=sorted(b.lower())
print(a)
print(b)
if(a==b):
print(“strings are anagram”)
else:
print(“strings are not anagram”) 0
• 44_Harsh

a = str(input(“enter first string :”))
b = str(input(“enter second string: “))
a =list(a)
b =list(b)
a.sort()
b.sort()
if a ==b:
print(“valid”)
else:
print(“invalid”)
#OUTPUT
enter first string :prepinsta
enter second string: preepinsta
invalid 0