Advertisement
Guest User

Untitled

a guest
Jul 15th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1. def get_shortest_unique_substring(arr, string):
  2.     i, j = 0, 0
  3.     min_i, min_j = 0, len(string) + 1
  4.     counter = 0
  5.     characters = { k:0 for k in arr }
  6.     while i < len(string) and j < len(string):
  7.         curr = string[j]
  8.         print(curr)
  9.         if curr in characters:
  10.             characters[curr] += 1
  11.             if characters[curr] == 1:
  12.                 counter += 1
  13.         if counter == len(arr):
  14.             while counter == len(arr):
  15.                 old = min_j - min_i
  16.                 new = j - i
  17.                 if new < old:
  18.                     min_i, min_j = i, j
  19. #                    print("Substring %d - %d" %(min_i,min_j))
  20.                 curr = string[i]
  21.                 if curr in characters:
  22.                     characters[curr] -= 1
  23.                     if characters[curr] == 0:
  24.                         counter -= 1
  25.                 i+=1
  26.         j += 1
  27.     if min_j == len(string) + 1:
  28.         return ""
  29.     return string[min_i:min_j+1]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement