Wednesday, October 25, 2017

[LeetCode]Palindrome Pairs

思路其实很直观,对于每一个string找所有是palindrome的前缀和后缀,然后去map里找有没有string map剩余的部分。一般来讲,找所有palindrome前缀后缀的方法是一个一个看是不是palindrome,假设string长度为d,时间复杂度就为O(d^2)。但是我们有更好的方法,参考Shortest Palindrome中用KMP求最长回文前缀的方法,我们可以在O(n)的时间里找到所有的回文前后缀,注意去重即可。假设string平均长度为d,数量为n,时间复杂度为O(n * d),代码如下:


No comments:

Post a Comment