較大分組的位置

2021-10-13 23:11:45 字數 1099 閱讀 4068

「」"

在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。

例如,在字串 s = 「abb***xzyy」 中,就含有 「a」, 「bb」, 「***x」, 「z」 和 「yy」 這樣的一些分組。

分組可以用區間 [start, end] 表示,其中 start 和 end 分別表示該分組的起始和終止位置的下標。

上例中的 「***x」 分組用區間表示為 [3,6] 。

我們稱所有包含大於或等於三個連續字元的分組為 較大分組 。

找到每乙個 較大分組 的區間,按起始位置下標遞增順序排序後,返回結果。

示例 1:

輸入:s = 「abb***xzzy」

輸出:[[3,6]]

解釋:「***x」 是乙個起始於 3 且終止於 6 的較大分組。

示例 2:

輸入:s = 「abc」

輸出:解釋:「a」,「b」 和 「c」 均不是符合要求的較大分組。

示例 3:

輸入:s = 「abcdddeeeeaabbbcd」

輸出:[[3,5],[6,9],[12,14]]

解釋:較大分組為 「ddd」, 「eeee」 和 「bbb」

示例 4:

輸入:s = 「aba」

輸出:「」"

def largegrouppositions(s):

ret =

n, num = len(s), 1

for i in range(n):

# 如果下乙個字元與當前字元不同,或者已經列舉到字串尾部,就說明當前字元為當前分組的尾部

if i == n - 1 or s[i] != s[i + 1]:

# 每次找到當前分組的尾部時,如果該分組長度達到 3,我們就將其加入答案

if num >= 3:

num = 1

else:

num += 1

return ret

if __name__ == '__main__':

s = "abcdddeeeeaabbbcd"

print(largegrouppositions(s))

較大分組的位置

在乙個由小寫字母構成的字串s中,包含由一些連續的相同字元所構成的分組。例如,在字串s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。最終結果按照字典順序輸出。示例 1 輸入 abb ...

較大分組的位置

題目 在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。例如,在字串 s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。最終結果按照字典順序輸出。示例 示例 ...

830 較大分組的位置

在乙個由小寫字母構成的字串s中,包含由一些連續的相同字元所構成的分組。例如,在字串s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。最終結果按照字典順序輸出。示例 1 輸入 abb ...