X-O__O-X's blog

By X-O__O-X, history, 4 years ago, In English

Given integers n and k such that

0 < n <= 10^6

0 < k <= 10^3

and a string S of length n.

Find any substring of length k in S with maximum number of occurrences. I don't care about the obvious complete search solution. Also, no need for complete solution. just some hints. what topic to look for ?etc.

example

n=13 k=3

abcabcabcabcd

ans is "abc" repeated 4 times.

  • Vote: I like it
  • +1
  • Vote: I do not like it

| Write comment?
»
4 years ago, # |
  Vote: I like it +1 Vote: I do not like it

Use the Z-algorithm

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +3 Vote: I do not like it

    Thank you. I just found idea using map<deque, int> counts; where I can construct any substring , ss, after the first one in O(1) but then I have to do : counts[ss]++; which I think should take O(|ss|*log n)