Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_shortest_unique_substring(arr, string):
- i, j = 0, 0
- min_i, min_j = 0, len(string) + 1
- counter = 0
- characters = { k:0 for k in arr }
- while i < len(string) and j < len(string):
- curr = string[j]
- print(curr)
- if curr in characters:
- characters[curr] += 1
- if characters[curr] == 1:
- counter += 1
- if counter == len(arr):
- while counter == len(arr):
- old = min_j - min_i
- new = j - i
- if new < old:
- min_i, min_j = i, j
- # print("Substring %d - %d" %(min_i,min_j))
- curr = string[i]
- if curr in characters:
- characters[curr] -= 1
- if characters[curr] == 0:
- counter -= 1
- i+=1
- j += 1
- if min_j == len(string) + 1:
- return ""
- return string[min_i:min_j+1]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement