In this HackerRank Merge the tools problem solution in python 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.
Problem solution in Python 2 programming.
# 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
Problem solution in Python 3 programming.
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 ]))
Problem solution in pypy programming.
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)
Problem solution in pypy3 programming.
# 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))