Merge the Tools in python – HackerRank Solution

 from collections import OrderedDict def merge_the_tools(string, k):     # your code goes here     strlen = len(string)     for i in range(0,strlen,k):         print(''.join(OrderedDict.fromkeys(string[i:i + k]))) # Merge the Tools in python - Hacker Rank Solution END if __name__ == '__main__':     string, k = input(), int(input())     merge_the_tools(string, k)
Merge the Tools in python – HackerRank Solution

Consider the following:

  • A string, s, of length n where s = c0c1…..cn-1.
  • An integer, k, where k is a factor of n.

We can split s into n/k subsegments where each subsegment, ti, consists of a contiguous block of k characters in s. Then, use each ti to create string ui such that:

  • The characters in ui are a subsequence of the characters in ti.
  • Any repeat occurrence of a character is removed from the string such that each character in ui occurs exactly once. In other words, if the character at some index j in ti occurs at a previous index<j in ti, then do not include the character in string ui.

Given s and k, print n/k lines where each line i denotes string ui.


Input Format :

The first line contains a single string denoting s.
The second line contains an integer, k, denoting the length of each subsegment.

Constraints :

  • 1 <= n <= 10^4, where n is the length of s.
  • 1 <= k <= n
  • it is guaranteed that n is a multiple of k.

Output Format :

Print n/k lines where each line i contains string ui.


Sample Input :

AABCAAADA
3

Sample Output :

AB
CA
AD

Explanation :

String s is split into n/k = 9/3 = 3 equal parts of length k = 3. We convert each ti to ui by removing any subsequent occurrences non-distinct characters in ti:

  1. t0 = “AAB” -> u0 = “AB”
  2. t1 = “CAA” -> u1 = “CA”
  3. t2 = “ADA” -> u2 = “AD”

We then print each ui on a new line.


Merge the Tools in python – HackerRank Solution

from collections import OrderedDict
def merge_the_tools(string, k):
    # your code goes here
    strlen = len(string)
    for i in range(0,strlen,k):
        print(''.join(OrderedDict.fromkeys(string[i:i + k])))
# Merge the Tools in python - Hacker Rank Solution END
if __name__ == '__main__':
    string, k = input(), int(input())
    merge_the_tools(string, k)

Disclaimer: The above Problem (Merge the Tools in python – HackerRank Solution) is generated by Hackerrank but the Solution is Provided by Chase2Learn. This tutorial is only for Educational and Learning purposes. Authority if any of the queries regarding this post or website fill the following contact form thank you.

Leave a Comment