中文english
給定乙個長度為nn且只包含a
和b
的字串ss。你需要找出最長的子串長度,使得其中不包含三個連續的字母。即,找出不包含aaa
或bbb
的最長子串長度。注意ss是其本身的子串。
樣例1
輸入: "baaabbabbb"
輸出: 7
說明: "aabbabb"是最長符合條件的子串
樣例2
輸入: "babba"
輸出: 5
說明:整個s符合條件
樣例3
輸入: "abaaaa"
輸出: 4
說明: "abaa"是最長符合條件的子串
classsolution:
""" @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 ...