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;
        }
    }
    
  • 相关阅读:
    JDBC连接MySQL并且查询操作。
    struts
    KMP 剪花布条hdoj2087
    线段树---敌兵布阵hdoj 1166
    设计模式----观察者模式
    线段树--hdoj1754
    ZOJ 2283 Challenge of Wisdom
    SGU 134 Centroid
    UVA 1637 Double Patience
    HDU 4389 X mod f(x)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074475.html
Copyright © 2011-2022 走看看