在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。
例如,在字串 s = 「abb***xzyy」 中,就含有 「a」, 「bb」, 「***x」, 「z」 和 「yy」 這樣的一些分組。
分組可以用區間 [start, end] 表示,其中 start 和 end 分別表示該分組的起始和終止位置的下標。上例中的 「***x」 分組用區間表示為 [3,6] 。
我們稱所有包含大於或等於三個連續字元的分組為 較大分組 。
找到每乙個 較大分組 的區間,按起始位置下標遞增順序排序後,返回結果。
示例 1:
輸入:s = 「abb***xzzy」示例 2:輸出:[[3,6]]
解釋:「***x」 是乙個起始於 3 且終止於 6 的較大分組。
輸入:s = 「abc」示例 3:輸出:解釋:「a」,「b」 和 「c」 均不是符合要求的較大分組。
輸入:s = 「abcdddeeeeaabbbcd」示例 4:輸出:[[3,5],[6,9],[12,14]]
解釋:較大分組為 「ddd」,「eeee」 和 「bbb」
輸入:s = 「aba」1 <= s.length <= 1000輸出:
s 僅含小寫英文本母
給字串後面拼接乙個0,解決最後一組遍歷不到的問題。
使用雙指標去遍歷字串,將符合要求的資料取出。
class
solution
:def
largegrouppositions
(self, s)
: s = s +
'0'print
(s) res =
left =
0 right =
1while left <
len(s)-1
:if s[left]
== s[right]
: right +=
1else
:if right - left >2:
[left, right -1]
) left = right
right +=
1return res
較大分組的位置
在乙個由小寫字母構成的字串s中,包含由一些連續的相同字元所構成的分組。例如,在字串s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。最終結果按照字典順序輸出。示例 1 輸入 abb ...
較大分組的位置
題目 在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。例如,在字串 s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。最終結果按照字典順序輸出。示例 示例 ...
較大分組的位置
在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。例如,在字串 s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。分組可以用區間 start,end 表示,其中 start 和 end 分別表示該分組的起始和終止位置的下標。上例中的 x 分組用區間...