此題有較多的解法,在此用了動態規劃的做法:
dp[j][i] : 表示 下標為 從 j -> i 的字串是否為回文字串。
可以做如下判斷:
每當dp為1時,記錄此時的長度和座標,返回最長的回文子串即可。
class
solution
;// [j,i]
int len =
0,left=
0,right=0;
for(
int i=
0;i}}
return s.
substr
(left,right-left+1)
;}};
字串「最」系列
最近練手,整理了乙個 最 系列的主題,這些題目有點繞,個別的還有別名 詳見博文 混在一塊比較亂,就索性放在一起做了個整理,區別的時候要注意子串行與子串的不同,前者不要求連續,後者要求連續 由於大部分跟dp有關,而且一些題目還可以漸進尋求多種解法,可以用來做不錯的練手。下面是這些問題的博文目錄 1 最...
求字串中重複出現的最長字串
求字串中重複出現的最長字串 例如字串 drgabcifrabcsdrrs中,最長公共字串是 abc 方法 利用字尾樹來求。字串的字尾樹有如下 drgabcifrabcsdrrs rgabcifrabcsdrrs gabcifrabcsdrrs abcifrabcsdrrs s1 rabcsdrrs ...
字串相乘 求字串的乘積
package com.leetcode.字串相乘 author date 2020 9 30 給定兩個字串 num1 123 num2 456 不能使用大數biginterger和直接轉換成數字來處理,計算結果,存為字串 思路 1 先計算每一位數字相乘的結果,儲存在集合中,不進行進製操作 2 遍歷...