description for manacher algorithm