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;
        }
    }
    
  • 相关阅读:
    雅虎笔试&面试题
    有道面试
    IBM笔试&面试
    20140916~17华宇笔试&面试
    操作系统知识梳理3-存储管理
    操作系统知识梳理2-哲学家就餐问题
    操作系统知识梳理1-概述及进程管理
    阿里面试总结
    2012-2015网易有道笔试题总结
    PostgresSQL在cmd中使用psql操作数据库
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074460.html
Copyright © 2011-2022 走看看