給定乙個字串,你的任務是計算這個字串中有多少個回文子串。
具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。
示例 1:
示例 2:
注意:1.輸入的字串長度不會超過1000。
中心擴充套件法:
在長度為 n 的字串中,可能的回文串中心位置有 2n-1 個:字母,或兩個字母中間。
演算法:從每乙個回文串中心開始統計回文串數量。回文區間 [a, b] 表示 s[a], s[a+1], …, s[b] 是回文串,根據回文串定義可知 [a+1, b-1] 也是回文區間。
對於每個可能的回文串中心位置,盡可能擴大它的回文區間 [left, right]。當 left >= 0 and right < n and s[left] == s[right] 時,擴大區間。此時回文區間表示的回文串為 s[left], s[left+1], …, s[right]。
class
solution
}return res;}}
;
時間複雜度:o(n^2)
空間複雜度:o(1)
647 回文子串
給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。示例 1 輸入 abc 輸出 3 解釋 三個回文子串 a b c 示例 2 輸入 aaa 輸出 6 說明 6個回文子串 a a a aa aa aaa 分析 關鍵...
647 回文子串
給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串 比如 給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。示例 1 輸入 a...
647 回文子串
給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。示例 1 輸入 abc 輸出 3 解釋 三個回文子串 a b c 示例 2 輸入 aaa 輸出 6 說明 6個回文子串 a a a aa aa aaa class...