All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0801_0900.s0830_positions_of_large_groups.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0801_0900.s0830_positions_of_large_groups;

// #Easy #String #2022_03_24_Time_2_ms_(80.94%)_Space_44.3_MB_(74.84%)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 830 - Positions of Large Groups\.
 *
 * Easy
 *
 * In a string `s` of lowercase letters, these letters form consecutive groups of the same character.
 *
 * For example, a string like `s = "abbxxxxzyy"` has the groups `"a"`, `"bb"`, `"xxxx"`, `"z"`, and `"yy"`.
 *
 * A group is identified by an interval `[start, end]`, where `start` and `end` denote the start and end indices (inclusive) of the group. In the above example, `"xxxx"` has the interval `[3,6]`.
 *
 * A group is considered **large** if it has 3 or more characters.
 *
 * Return _the intervals of every **large** group sorted in **increasing order by start index**_.
 *
 * **Example 1:**
 *
 * **Input:** s = "abbxxxxzzy"
 *
 * **Output:** [[3,6]]
 *
 * **Explanation:** `"xxxx" is the only` large group with start index 3 and end index 6.
 *
 * **Example 2:**
 *
 * **Input:** s = "abc"
 *
 * **Output:** []
 *
 * **Explanation:** We have groups "a", "b", and "c", none of which are large groups.
 *
 * **Example 3:**
 *
 * **Input:** s = "abcdddeeeeaabbbcd"
 *
 * **Output:** [[3,5],[6,9],[12,14]]
 *
 * **Explanation:** The large groups are "ddd", "eeee", and "bbb".
 *
 * **Constraints:**
 *
 * *   `1 <= s.length <= 1000`
 * *   `s` contains lowercase English letters only.
**/
public class Solution {
    public List> largeGroupPositions(String s) {
        List> map = new ArrayList<>();
        int i = 0;
        while (i < s.length()) {
            int j = i;
            while (j < s.length() && s.charAt(j) == s.charAt(i)) {
                j++;
            }
            if ((j - 1) - i + 1 >= 3) {
                map.add(Arrays.asList(i, j - 1));
            }
            i = j;
        }
        return map;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy