Блог пользователя Tribbiani

Автор Tribbiani, история, 9 лет назад, По-английски

can anyone explain the hashing solution of this problem?

thanks in advance :)

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

There is 2 parts in hash solution:

1) Largest substring(but not prefix or suffix) equal to prefix. Imagine that we know length of this string. Then we can check if there is a string of this length in O(N).

Let's notice if there is such string of length i + 1 there is string with length i. So we can do binary search to find this is O(n * logn)

2) We iterate over all possible answer's lengthes and check two things

a) This length is less than length in 1 part

b) Prefix of this length equals to suffix of this length(using hashes)

So we get O(n * logn) solution