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;
        }
    }
    
  • 相关阅读:
    探索式测试实践之路
    管理是什么?真正的管理者是,“管”+“理”!
    JavaScript中的函数式编程
    node js的终端中 console.log 嵌套对象会被折叠的问题
    apt-get install的默认安装路径
    nodejs 事件循环 试题思考
    仅20行的JavaScript模板引擎
    js 驼峰命名转烤串
    git reset 进阶
    linux 拷贝文本到剪切板
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074475.html
Copyright © 2011-2022 走看看