Check if Two Strings Are Anagrams in Python Using sorted()

Have you ever wondered if two words or phrases are anagrams of each other? An anagram is a word or phrase formed by rearranging the letters of another word or phrase. For example, “listen” and “silent” are anagrams. In this blog, we will explore a simple and efficient Python program to check if two strings are anagrams using the sorted() function.

In Python, the sorted() function is a powerful tool that allows us to sort elements in a sequence, such as a string. By utilizing this function, we can compare the sorted versions of two strings and determine if they are anagrams or not.

So, let’s get started with our exploration of how to check if two strings are anagrams in Python using the sorted() function.

Python Program to Check if Two Strings Are Anagrams Using sorted() Function

# Check If Two Strings are Anagram Using sorted() function in 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)

Code Explanation

Defining the check function

In this step, we define a function called check which takes two strings, s1 and s2, as input. This function will check if the two strings are anagrams or not.

Compare sorted strings

Inside the check function, we compare the sorted versions of s1 and s2 using the sorted() function. The sorted() function returns a new list containing the sorted characters of the input string.

Check anagram condition

We check if the sorted versions of s1 and s2 are equal using the == operator. If they are equal, it means that the original strings s1 and s2 are anagrams of each other.

Printing the result

If the anagram condition is satisfied, i.e., the sorted strings are equal, we print the message “The strings are anagrams.” If the condition is not satisfied, we print the message “The strings aren’t anagrams.”

Provide example strings

In the driver code, we provide example strings s1 and s2 which we want to check for anagram condition.

Calling the check function

We call the check function with the example strings s1 and s2 as arguments. The function will compare the sorted versions of the strings and print the appropriate result.

Printing the final output

Based on the anagram condition, the check function will print either “The strings are anagrams.” or “The strings aren’t anagrams.”

Output:

The strings are anagrams.

The output of the program will indicate whether the two input strings are anagrams or not. If the two strings are anagrams, the program will display the message “The strings are anagrams.” But, if the two strings are not anagrams, the program will display the message “The strings aren’t anagrams.” 

Here are a few alternate methods:

Using Counter():

To check if two strings are anagrams, you can create Counter objects for both strings and compare them. The advantage of using Counter is that it counts the occurrences of each character efficiently, without the need for sorting. However, using Counter requires importing the collections module and may not be as easy for beginners.

Using sort():

By converting the strings to lists, you can use the sort() method to sort the characters. The advantage of using the sort() method is that it directly modifies the original list without the need for creating new lists or importing additional modules. It is a simple and efficient approach for checking if two strings are anagrams, particularly when you are working with lists.

In this code, we used the sorted() function as it allows us to easily obtain sorted versions of strings. It automatically handles the sorting process for you, simplifying the code and making it more readable and concise. The sorted() function has a time complexity of O(n log n) due to the sorting operation. However, for most practical cases, the performance is acceptable since the length of the strings is usually not very large.

Conclusion:

In conclusion, the code using the sorted() function in Python provides a simple and efficient way to check if two strings are anagrams of each other. By comparing the sorted versions of the strings, we can determine if they contain the same characters in the same frequency, indicating an anagram relationship.

The code explains the use of the sorted() function to sort the characters of the strings and then compares the sorted strings for equality. If the sorted strings are equal, it confirms that the original strings are anagrams. Otherwise, if the sorted strings are not equal, it indicates that the strings are not anagrams.

This approach eliminates the need for manual sorting or counting of characters, making the code short and readable. It provides a reliable solution for identifying anagrams and can be easily incorporated into larger programs or projects that require anagram detection.

Frequently Asked Questions

Q: How does the code determine if two strings are anagrams?

A: The code compares the sorted versions of the two input strings using the sorted() function. If the sorted strings are equal, it means the original strings are anagrams because they contain the same letters in the same quantities.

Q: What will happen if the input strings have spaces or special characters?

A: The code treats spaces and special characters just like any other character. It compares the sorted versions of the input strings character by character, including spaces and special characters, to determine if they are anagrams.

Q: Is the code case-sensitive?

A: Yes, the code is case-sensitive. It considers uppercase and lowercase letters as distinct characters. For example, “listen” and “silent” would be considered anagrams, but “Listen” and “silent” would not.

Q: Can I use this code to check anagrams of phrases or sentences?

A: Yes, the code can be used to check anagrams of phrases or sentences. It treats the input as a sequence of characters and checks if the sorted versions of the input strings are equal, regardless of the content or length of the strings.

About The Author

Leave a Reply