Program to check two strings can be equal by swapping characters or not in Python

Suppose we have two lowercase strings s and t, they are of the same length. We can select one character from s and another from t and swap them. We can do this operation any number of times we want. Finally, we have to check whether it's possible to make the two strings same or not.

So, if the input is like s = "abcd" t = "cdab", then the output will be True

To solve this, we will follow these steps −

  • fre := a list containing frequencies of each elements present in concatenated string of s and t
  • for each cnt in list of all values of fre, do
    • if cnt mod 2 is 1, then
      • return False
  • return True


Let us see the following implementation to get better understanding −

from collections import Counter
def solve(s, t):
   fre = Counter(s+t)

   for cnt in fre.values():
      if cnt % 2:
         return False

   return True

s = "abcd"
t = "cdab"
print(solve(s, t))


"abcd", "cdab"



Updated on: 14-Oct-2021


Kickstart Your Career

Get certified by completing the course

Get Started