Two user input strings are given, our task is to print all the common characters in alphabetical order.
Input: string1: python string2: program Output: op
The letters that are common between the two strings are o (1 times), p (1 time)
Step 1: first we take two input string. Step 2: next we will do to convert these two strings into counter dictionary. Step 3: Now find common elements between two strings using intersection ( ) property. Step 4: Resultant will also be a counter dictionary having common elements as keys and their common frequencies as value. Step 5: Use elements () method of the counter dictionary to expand the list of keys by their frequency number of times. Step 6: sort list in ascending order to print a resultant string in alphabetical order. Step 7: join characters without space to produce resultant string.
from collections import Counter def common(str1,str2): d1 = Counter(str1) d2 = Counter(str2) cdict = d1 & d2 if len(cdict) == 0: print -1 return cchars = list(cdict.elements()) cchars = sorted(cchars) print ("Common characters are ::>",''.join(cchars) ) # Driver program if __name__ == "__main__": s1 = input("Enter first string") s2 = input("Enter second string") common(s1, s2)
Enter first string python Enter second string program Common characters are ::> op