Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.30 KB | None | 0 0
  1. a = input()
  2. z = [0 for i in range(len(a))]
  3. l, r = 0, 0
  4. for i in range(0, len(a)):
  5. z[i] = min(z[i - l], r - i) if r > i else 0
  6. while i + z[i] < len(a) and a[z[i]] == a[i + z[i]]:
  7. z[i] += 1
  8. if i + z[i] > r:
  9. l, r = i, i + z[i]
  10. for i in range(len(z)):
  11. print(z[i], end=" ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement