Algorithm


Problem Name: Python - Merge the Tools!

Problem Link: https://www.hackerrank.com/challenges/merge-the-tools/problem?isFullScreen=true   

In this HackerRank Functions in PYTHON problem solution,

Consider the following:

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

We can split s into n/k substrings where each subtring, ti , consists of a contiguous block of k characters in s. Then, use each ti to create string 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.

Example

s = 'AAABCADDE'

k = 3

There are three substrings of length 3 to consider: 'AAA', 'BCA' and 'DDE'. The first substring is all 'A' characters, so ui = 'A' . The second substring has all distinct characters, so u2 = 'BCA'. The third substring has different characters, so u3 = 'DE'.

 

. Note that a subsequence maintains the original order of characters encountered. The order of characters in each subsequence shown is important.

 

Function Description

 

Complete the merge_the_tools function in the editor below.

 

merge_the_tools has the following parameters:

 

  • string s: the string to analyze
  • int k: the size of substrings to analyze

 

Prints

Print each subsequence on a new line. There will be n/k of them. No return value is expected.

Input Format

The first line contains a single string, s.

The second line contains an integer, k, the length of each substring.

Constraints

  • 1 <= n <= 10**4
  • 1 <= k <= n
  • It is guaranteed that n is a multiple of k

Sample Input

STDIN       Function
-----       --------
AABCAAADA   s = 'AABCAAADA'
3           k = 3

Sample Output

AB
CA
AD

 

 

 

 

Code Examples

#1 Code Example with Python Programming

Code - Python Programming


def merge_the_tools(string, k):
    print(*(''.join(dict.fromkeys(string[i: i + k])) for i in range(0, len(string), k)), sep='\n')
Copy The Code & Try With Live Editor
Advertisements

Demonstration


Previous
[Solved] Cube Summation solution in Hackerrank - Hacerrank solution C, C++, java,js, Python
Next
[Solved] Time Delta in PYTHON solution in Hackerrank