天天看点

[网易]字符串回文分割

将一个很长的字符串,分割成一段一段的子字符串,子字符串都是回文字符串。有回文字符串就输出最长的,没有回文就输出一个一个的字符。

例如:habbafgh

输出h,abba,f,g,h。

基于“最长回文子串算法”求出当前字符串的最长回文子串,就可以分成3部分

a、最长回文子串left部分

b、最长回文子串

c、最长回文子串right部分

然后分别求a和c的最长回文子串

递归至每部分都成单个字符+当前最长回文子串,就可以分解成最终结果。

[网易]字符串回文分割

先将给定字符串翻转,然后和原来的字符串一起,这样就变成了最长公共子序列问题。

此时可以利用动态规划的思路来完成。

关于最长公共子序列问题可以参考<算法导论>里面有详细的说明

相关链接:

[百度]2014百度校园招聘之最长回文串

[小米]2015小米校招之回文数判断

继续阅读