w3resource

Python: Make two given strings anagrams removing any characters from any of the strings


Make strings anagrams (retain characters).

Write a Python program to make two given strings (lower case, may or may not be of the same length) anagrams without removing any characters from any of the strings.

Visual Presentation:

Python String: Make two given strings anagrams removing any characters from any of the strings.

Sample Solution:

Python Code:

# Function to create character map
def make_map(s):
  temp_map = {}
  for char in s:
    if char not in temp_map:
      temp_map[char] = 1 
    else:
      temp_map[char] += 1
  return temp_map

# Function to calculate edits to make anagram 
def make_anagram(str1, str2):
  
  # Create maps for each string
  str1_map1 = make_map(str1)
  str2_map2 = make_map(str2)
  
  ctr = 0
  
  # Loop through keys in second map
  for key in str2_map2.keys():
    # If key not in first map, add to counter
    if key not in str1_map1:
      ctr += str2_map2[key]
    # Else add difference  
    else:
      ctr += max(0, str2_map2[key]-str1_map1[key])
      
  # Loop through keys in first map  
  for key in str1_map1.keys():
    # If key not in second map, add to counter
    if key not in str2_map2:
      ctr += str1_map1[key]
    # Else add difference
    else:
      ctr += max(0, str1_map1[key]-str2_map2[key])

  return ctr
  
# Get input strings  
str1 = input("Input string1: ")
str2 = input("Input string2: ")

# Print number of edits  
print(make_anagram(str1, str2)) 

Sample Output:

Input string1:  The quick brown fox
Input string2:  jumps over the lazy dog
24

Flowchart:

Flowchart: Make two given strings anagrams removing any characters from any of the strings

Python Code Editor:

Previous: Write a Python program to find all the common characters in lexicographical order from two given lower case strings. If there are no common letters print “No common characters”.
Next: Write a Python program to remove all consecutive duplicates of a given string.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.