Python code to print common characters of two Strings in alphabetical order Last Updated : 25 Jul, 2022 Comments Improve Suggest changes 7 Likes Like Report Given two strings, print all the common characters in lexicographical order. If there are no common letters, print -1. All letters are lower case. Examples: Input : string1 : geeks string2 : forgeeks Output : eegks Explanation: The letters that are common between the two strings are e(2 times), g(1 time), k(1 time) and s(1 time). Hence the lexicographical output is "eegks" Input : string1 : hhhhhello string2 : gfghhmh Output : hhh This problem has existing solution please refer Print common characters of two Strings in alphabetical order link. We will solve this problem in python using intersection property and collections.Counter() module. Approach is simple, Convert both strings into dictionary data type using Counter(str) method, which contains characters of string as key and their frequencies as value.Now find common elements between two strings using intersection ( a&b ) property.Resultant will also be an counter dictionary having common elements as keys and their common frequencies as value.Use elements() method of counter dictionary to expand list of keys by their frequency number of times.Sort the list and concatenate each character of output list without space to print resultant string. Implementation: Python3 # Function to print common characters of two Strings # in alphabetical order from collections import Counter def common(str1,str2): # convert both strings into counter dictionary dict1 = Counter(str1) dict2 = Counter(str2) # take intersection of these dictionaries commonDict = dict1 & dict2 if len(commonDict) == 0: print (-1) return # get a list of common elements commonChars = list(commonDict.elements()) # sort list in ascending order to print resultant # string on alphabetical order commonChars = sorted(commonChars) # join characters without space to produce # resultant string print (''.join(commonChars)) # Driver program if __name__ == "__main__": str1 = 'geeks' str2 = 'forgeeks' common(str1, str2) Output: eegks Time complexity : O(n) Auxiliary Space : O(n) Create Quiz Comment S Shashank Mishra Follow 7 Improve S Shashank Mishra Follow 7 Improve Article Tags : Python python-string Python string-programs Explore Python FundamentalsPython Introduction 2 min read Input and Output in Python 4 min read Python Variables 4 min read Python Operators 4 min read Python Keywords 2 min read Python Data Types 8 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 5 min read Python Functions 5 min read Recursion in Python 4 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 4 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 3 min read Python MySQL 9 min read Python Packages 10 min read Python Modules 3 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 4 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 3 min read StatsModel Library - Tutorial 3 min read Learning Model Building in Scikit-learn 6 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 6 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 5 min read Build a REST API using Flask - Python 3 min read Building a Simple API with Django REST Framework 3 min read Python PracticePython Quiz 1 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read Like