較大分組的位置

2021-10-02 10:20:59 字數 1114 閱讀 5710

題目

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

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

我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。

最終結果按照字典順序輸出。

示例

示例 1

:輸入:

"abb***xzzy"

輸出:[[3

,6]]

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

示例 2

:輸入:

"abc"

輸出:[

]解釋:

"a",

"b" 和 "c" 均不是符合要求的較大分組。

示例 3

:輸入:

"abcdddeeeeaabbbcd"

輸出:[[3

,5],

[6,9

],[12

,14]]

說明:1

<= s.length <=

1000

思路

按順序統計元素連續出現的次數,就是不斷比較連續的兩個元素是否相同,相同則計數器加1,同時更新元素的末尾位置;否則判斷此時的計數器是否》=3,是則將元素的起始位置存下來,否則忽略,然後將計數器置1,重新記錄元素的起始位置;繼續遍歷直到陣列末尾。

vectorint>>

largegrouppositions

(string s)

//如果當前數不等於前乙個數 或者 當前數是最後乙個數

if(s[i]

!= s[i-1]

|| i == s.

size()

-1))

;}//計數器恢復初值

count =1;

//重新初始新的連續元素的起始位置

start = end = i;}}

return result;

}

較大分組的位置

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

較大分組的位置

在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。例如,在字串 s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。分組可以用區間 start,end 表示,其中 start 和 end 分別表示該分組的起始和終止位置的下標。上例中的 x 分組用區間...

830 較大分組的位置

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