天天看點

[網易]字元串回文分割

将一個很長的字元串,分割成一段一段的子字元串,子字元串都是回文字元串。有回文字元串就輸出最長的,沒有回文就輸出一個一個的字元。

例如:habbafgh

輸出h,abba,f,g,h。

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

a、最長回文子串left部分

b、最長回文子串

c、最長回文子串right部分

然後分别求a和c的最長回文子串

遞歸至每部分都成單個字元+目前最長回文子串,就可以分解成最終結果。

[網易]字元串回文分割

先将給定字元串翻轉,然後和原來的字元串一起,這樣就變成了最長公共子序列問題。

此時可以利用動态規劃的思路來完成。

關于最長公共子序列問題可以參考<算法導論>裡面有詳細的說明

相關連結:

[百度]2014百度校園招聘之最長回文串

[小米]2015小米校招之回文數判斷

繼續閱讀