647 回文子串

2021-10-07 06:28:35 字數 810 閱讀 9516

給定乙個字串,你的任務是計算這個字串中有多少個回文子串。

具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。

示例 1:

輸入: "abc"

輸出: 3

解釋: 三個回文子串: "a", "b", "c".

示例 2:

輸入: "aaa"

輸出: 6

說明: 6個回文子串: "a", "a", "a", "aa", "aa", "aaa".

class solution:

def countsubstrings(self, s: str) -> int:

l = len(s)

cnt = 0

# 以某乙個元素為中心的奇數長度的回文串的情況

for center in range(l):

left = right = center

while left >= 0 and right < l and s[left] == s[right]:

cnt += 1

left -= 1

right += 1

# 以某對元素為中心的偶數長度的回文串的情況

for left in range(l - 1):

right = left + 1

while left >= 0 and right < l and s[left] == s[right]:

cnt += 1

left -= 1

right += 1

return cnt

647 回文子串

給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。示例 1 輸入 abc 輸出 3 解釋 三個回文子串 a b c 示例 2 輸入 aaa 輸出 6 說明 6個回文子串 a a a aa aa aaa 分析 關鍵...

647 回文子串

給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串 比如 給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。示例 1 輸入 a...

647 回文子串

給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被計為是不同的子串。示例 1 示例 2 注意 1.輸入的字串長度不會超過1000。中心擴充套件法 在長度為 n 的字串中,可能的回文串中心位置有 2n 1 個 字母,或兩個字母中間。...