![]() |
VOOZH | about |
Sometimes, while working with data, we can have a problem in which we need to perform construction of string in a way that we have a list of tuple having character and it's corresponding frequency and we require to construct a new string from that. Let's discuss certain ways in which this task can be performed.
Method #1 : Using loop This is brute force method in which this task can be performed. In this, we iterate the list and perform string concatenation using * operator and keep building string this way.
The original list : [('g', 4), ('f', 3), ('g', 2)]
The constructed string is : ggggfffggTime Complexity: O(n)
Auxiliary Space: O(n)
Method #2 : Using join() + list comprehension The combination of above functionalities can be used to perform this task. In this, we perform the task of extraction using list comprehension and making string using join().
The original list : [('g', 4), ('f', 3), ('g', 2)]
The constructed string is : ggggfffggTime Complexity: O(n)
Auxiliary Space: O(n)
Method #3 : Using reduce()
The original list : [('g', 4), ('f', 3), ('g', 2)]
The constructed string is : ggggfffggTime Complexity: O(n)
Auxiliary Space: O(n)
Method #4: Using the map() function and lambda function
ggggfffgg
Time Complexity: O(n)
Auxiliary Space: O(n)
Method 5: Use the itertools module.
Step-by-step approach:
Below is the implementation of the above approach:
ggggfffgg
Time complexity: O(n), where n is the total number of characters to be repeated.
Auxiliary space: O(n), where n is the total number of characters to be repeated, since we need to store the repeated character strings in memory before joining them into a single iterable.
Method 6: Using the numpy.repeat() function along with the join() function:
Steps:
Below is the implementation of the above approach:
Output:
ggggfffgg
Time Complexity: O(N), where N is the total number of characters in the constructed string.
Auxiliary Space: O(N), where N is the total number of characters in the constructed string.