1819 最長雙交替子串 回顧

2022-02-15 01:10:39 字數 1056 閱讀 9823

中文english

給定乙個長度為nn且只包含ab的字串ss。你需要找出最長的子串長度,使得其中不包含三個連續的字母。即,找出不包含aaabbb的最長子串長度。注意ss是其本身的子串。

樣例1

輸入: "baaabbabbb"

輸出: 7

說明: "aabbabb"是最長符合條件的子串

樣例2

輸入: "babba"

輸出: 5

說明:整個s符合條件

樣例3

輸入: "abaaaa"

輸出: 4

說明: "abaa"是最長符合條件的子串

class

solution:

""" @param s: the string

@return: length of longest semi alternating substring

"""'''

大致思路:

'''def longestsemialternatingsubstring(self, s):

if s == ''

:

return

0c = 1

res =

s = s + '

'p = s[0

]

for i in range(1

,len(s)):

if s[i] != s[i-1

]:

if c >= 3

: j = c - 2

p = s[i-1]*2

elif s[i] == '':

c = 1

else

: c += 1

p +=s[i]

return max(res)

最長雙回文串

題目描述 順序和逆序讀起來完全一樣的串叫做回文串。比如acbca是回文串,而abc不是 abc的順序為 abc 逆序為 cba 不相同 輸入長度為n的串s,求s的最長雙回文子串t,即可將t分為兩部分x,y,x y 1 且x和y都是回文串。對於 10 的資料,2 s 10 3 對於 30 的資料,2 ...

最長雙回文串

題目大意 輸入長度為n的串s,求s的最長雙回文子串t,即可將t分為兩部分x,y,x y 1 且x和y都是回文串。題解 若x,y都是回文串且相鄰,則共用乙個 可以對於每個 找出其左邊界和右邊界。include include include using namespace std define n 1...

最長雙回文串

題目描述 順序和逆序讀起來完全一樣的串叫做回文串。比如acbca是回文串,而abc不是 abc的順序為 abc 逆序為 cba 不相同 輸入長度為n的串s,求s的最長雙回文子串t,即可將t分為兩部分x,y,x y 1 且x和y都是回文串。對於 10 的資料,2 s 10 3 對於 30 的資料,2 ...