Editorial for CCC '16 J3 - Hidden Palindrome


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

Submitting an official solution before solving the problem yourself is a bannable offence.

Brute forcing all substrings in \mathcal{O}(N^3) is sufficient to pass. A more efficient approach would be to use Manacher's Algorithm, which runs in \mathcal{O}(N).

Time Complexity: \mathcal{O}(N^3) or \mathcal{O}(N).

Sample Brute Force Solution — Python 2

S = raw_input()
L = 1
for i in xrange(len(S) + 1):
    for j in xrange(i):
        if S[j:i] == S[j:i][::-1]:
            L = max(L, i - j)
print L

Comments

There are no comments at the moment.