304 North Cardinal St.
Dorchester Center, MA 02124
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 substrings where each subtring, 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.
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 u1 = ‘A’. The second substring has all distinct characters, so u2 = ‘BCA’. The third substring has 2 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.
Complete the merge_the_tools function in the editor below.
merge_the_tools has the following parameters:
Print each subsequence on a new line. There will be n/k of them. No return value is expected.
The first line contains a single string, s.
The second line contains an integer, k, the length of each substring.
STDIN Function ----- -------- AABCAAADA s = 'AABCAAADA' 3 k = 3
AB CA AD
Split s into n/k = 9/3 = 3 equal parts of length k = 3. Convert each ti to ui by removing any subsequent occurrences of non-distinct characters in ti:
Print each ui on a new line.
# Enter your code here. Read input from STDIN. Print output to STDOUT s = raw_input().strip() k = int(raw_input()) i = 0 while i < len(s): a = s[i:i+k] output = "" for x in a: if x not in output: output += x print output i += k
def merge_the_tools(string, k): for part in zip(*[iter(string)] * k): d = dict() print(''.join([ d.setdefault(c, c) for c in part if c not in d ]))
def merge_the_tools(string, k): # your code goes here for x in xrange(0,len(string),k): u_list=list(set(string[x:x+k])) print ''.join(u_list)
# Enter your code here. Read input from STDIN. Print output to STDOUT s=input() k=int(input()) ln=len(s) for i in range(0,ln,k): ss=s[i:i+k] sss= for x in ss: if x not in sss: sss.append(x) print (''.join(sss))
In our experience, we suggest you solve this Merge the Tools! Hacker Rank Solution and gain some new skills from Professionals completely free and we assure you will be worth it.
I hope this Merge the Tools! Hacker Rank Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Hacker Rank, Leetcode, Codechef, Codeforce Solution.
This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.
More Hacker Rank Problem & Solutions >>