Python | Remove all duplicates words from a given sentence
Given a sentence containing n words/strings. Remove all duplicates words/strings which are similar to each others.
Examples:
Input : Geeks for Geeks Output : Geeks for Input : Python is great and Java is also great Output : is also Java Python and great
We can solve this problem quickly using python Counter() method. Approach is very simple.
1) Split input sentence separated by space into words.
2) So to get all those strings together first we will join each string in given list of strings.
3) Now create a dictionary using Counter method having strings as keys and their frequencies as values.
4) Join each words are unique to form single string.
Python
from collections import Counter def remov_duplicates( input ): # split input string separated by space input = input .split( " " ) # now create dictionary using counter method # which will have strings as key and their # frequencies as value UniqW = Counter( input ) # joins two adjacent elements in iterable way s = " " .join(UniqW.keys()) print (s) # Driver program if __name__ = = "__main__" : input = 'Python is great and Java is also great' remov_duplicates( input ) |
and great Java Python is also
Time Complexity: O(N)
Auxiliary Space: O(N)
Method 2:
Python
# Program without using any external library s = "Python is great and Java is also great" l = s.split() k = [] for i in l: # If condition is used to store unique string # in another list 'k' if (s.count(i)> = 1 and (i not in k)): k.append(i) print ( ' ' .join(k)) |
Python is great and Java also
Time Complexity: O(N*N)
Auxiliary Space: O(N)
Method 3: Another shorter implementation:
Python3
# Python3 program string = 'Python is great and Java is also great' print ( ' ' .join( dict .fromkeys(string.split()))) |
Python is great and Java also
Time Complexity: O(N)
Auxiliary Space: O(N)
Method 4: Using set()
Python3
string = 'Python is great and Java is also great' print ( ' ' .join( set (string.split()))) |
Time Complexity: O(N)
Auxiliary Space: O(N)
is Python great and also Java
Method 5: using operator.countOf()
Python3
# Program using operator.countOf() import operator as op s = "Python is great and Java is also great" l = s.split() k = [] for i in l: # If condition is used to store unique string # in another list 'k' if (op.countOf(l,i)> = 1 and (i not in k)): k.append(i) print ( ' ' .join(k)) |
Python is great and Java also
Time Complexity: O(N)
Auxiliary Space: O(N)
Please Login to comment...