三次過 Lintcode 136 分割回文串

2021-08-31 13:21:52 字數 733 閱讀 9732

給定乙個字串s,將s分割成一些子串,使每個子串都是回文串。

返回s所有可能的回文串分割方案。

給出 s ="aab",返回

[

["aa", "b"],

["a", "a", "b"]

]

dfs.那麼,對原字串的所有子字串的訪問順序是什麼呢,如果原字串是 abcd, 那麼訪問順序為: a -> b -> c -> d -> cd -> bc -> bcd-> ab -> abc -> abcd, 這是對於沒有兩個或兩個以上子回文串的情況。

那麼假如原字串是 aabc,那麼訪問順序為:a -> a -> b -> c -> bc -> ab -> abc -> aa -> b -> c -> bc -> aab -> aabc,中間當檢測到aa時候,發現是回文串,那麼對於剩下的bc當做乙個新串來檢測,於是有 b -> c -> bc,這樣掃瞄了所有情況,即可得出最終答案。

public class solution 

private void dfs(string s, listlist, list> res, int index)

for(int i = index; i < s.length(); i++)}}

private boolean ispalindrome(string s)

return true;

}}

LintCode 136 分割回文串

給定乙個字串s,將s分割成一些子串,使每個子串都是回文串。返回s所有可能的回文串分割方案。給出 s aab 返回 aa b a a b 分析 採用深度優先搜尋即可,這種回文串的題目一上來我想到的居然是用線性規劃。繞了好大的坑,使用深度優先搜尋十分方便。class solution return tr...

三次過 Lintcode 182 刪除數字

給出乙個字串 a,表示乙個 n 位正整數,刪除其中 k 位數字,使得剩餘的數字仍然按照原來的順序排列產生乙個新的正整數。找到刪除 k 個數字之後的最小正整數。n 240,k n 給出乙個字串代表的正整數 a 和乙個整數 k,其中a 178542,k 4 返回乙個字串 12 注意刪除數字的思路,一開始...

三次過 Lintcode 426 恢復IP位址

給乙個由數字組成的字串。求出其可能恢復為的所有ip位址。你的任務就是往這段字串中新增三個點,使它成為乙個合法的ip位址.返回所有可能的ip位址.樣例 1 輸入 25525511135 輸出 255.255.11.135 255.255.111.35 解釋 255.255.111.35 255.255...