在乙個由小寫字母構成的字串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"輸出:
分析:雙指標處理字串;當字元不相等時,且相等字元長度大於等於3時,記錄字元;當字元相等時,繼續處理字元。
/**
* return an array of arrays of size *returnsize.
* the sizes of the arrays are returned as *returncolumnsizes array.
* note: both returned array and *columnsizes array must be malloced, assume caller calls free().
*/int** largegrouppositions(char * s, int* returnsize, int** returncolumnsizes)
i = j; //從j開始繼續查詢}}
*returnsize = sum;
return res;
}
leetcode 830 較大分組的位置
在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。例如,在字串 s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。最終結果按照字典順序輸出。示例 1 輸入 a...
LeetCode 830 較大分組的位置
在乙個由小寫字母構成的字串 s 中,包含由一些連續的相同字元所構成的分組。例如,在字串 s abb xzyy 中,就含有 a bb x z 和 yy 這樣的一些分組。我們稱所有包含大於或等於三個連續字元的分組為較大分組。找到每乙個較大分組的起始和終止位置。最終結果按照字典順序輸出。示例 1 輸入 a...
leetCode 830 較大分組的位置
使用乙個變數num記錄當前分組的長度num初始值為1,如果當前字元與之前的字元不同或者當前遍歷到了陣列尾部則判斷num的大小如果num 3,則加入答案,其他情況使num class solution num 1 else return res 利用雙指標記錄陣列每一段的長度,如果當前分組的長度大於等...