Tribbiani's blog

By Tribbiani, history, 9 years ago, In English

can anyone explain the hashing solution of this problem?

thanks in advance :)

  • Vote: I like it
  • 0
  • Vote: I do not like it

»
9 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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