zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 830 较大分组的位置(暴力模拟)

    830. 较大分组的位置

    在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。

    例如,在字符串 S = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。

    我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。

    最终结果按照字典顺序输出。

    示例 1:

    输入: “abbxxxxzzy”
    输出: [[3,6]]
    解释: “xxxx” 是一个起始于 3 且终止于 6 的较大分组。
    示例 2:

    输入: “abc”
    输出: []
    解释: “a”,“b” 和 “c” 均不是符合要求的较大分组。
    示例 3:

    输入: “abcdddeeeeaabbbcd”
    输出: [[3,5],[6,9],[12,14]]
    说明: 1 <= S.length <= 1000

    class Solution {
        public List<List<Integer>> largeGroupPositions(String S) {
            char[] sarr = S.toCharArray();
            List<List<Integer>> lists = new ArrayList<>();
    
            List<Integer> list = null;
    
            int count = 1;  // 记录下出现的次数
            for (int i = 1; i < sarr.length; i++) {
                if (sarr[i] == sarr[i - 1]) {
                    count ++;
                } else {
                    if (count >= 3) {
                        list = new ArrayList<>();
                        list.add(i - count);
                        list.add(i - 1);
                        lists.add(list);
                    }
                    count = 1;
                }
                if (count >= 3 && i == sarr.length - 1) {
                    list = new ArrayList<>();
                    list.add(i - count + 1);
                    list.add(i);
                    lists.add(list);
                }
            }
            return lists;
        }
    }
    
  • 相关阅读:
    不可或缺 Windows Native (15)
    不可或缺 Windows Native (14)
    不可或缺 Windows Native (13)
    不可或缺 Windows Native (12)
    不可或缺 Windows Native (11)
    不可或缺 Windows Native (10)
    不可或缺 Windows Native (9)
    不可或缺 Windows Native (8)
    不可或缺 Windows Native (7)
    不可或缺 Windows Native (6)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946068.html
Copyright © 2011-2022 走看看