zoukankan      html  css  js  c++  java
  • 830. 较大分组的位置『简单』

    题目来源于力扣(LeetCode

    一、题目

    830. 较大分组的位置

    题目相关标签:数组

    说明:

    • 1 <= S.length <= 1000

    二、解题思路

    1. 遍历字符串,判断当前元素与前一元素是否相同,相同时,记录次数的变量加 1

    2. 不同时,判断上一元素连续出现的次数是否大于等于 3,大于等于时,添加起始索引与结束索引至结果列表中

    3. 并将记录次数的变量重置为 1

    遍历结束后,需要判断最后的 count 是否大于等于 3,因为最后一位元素也可能是连续出现次数大于等于 3 次的元素,而在循环中未进行添加的操作

    三、代码实现

    public static List<List<Integer>> largeGroupPositions(String S) {
        List<List<Integer>> ans = new ArrayList<>();
        // 空值判断与长度为 0 的判断
        if (S == null || S.length() < 1) {
            return ans;
        }
        char[] sarr = S.toCharArray();
        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 > 2) {
                    list = new ArrayList<>();
                    list.add(i - count);
                    list.add(i - 1);
                    ans.add(list);
                }
                count = 1;
            }
        }
        // 最后一位也是较大分组中的元素时的情况
        if (count > 2) {
            list = new ArrayList<>();
            list.add(sarr.length - count);
            list.add(sarr.length - 1);
            ans.add(list);
        }
        return ans;
    }
    

    四、执行用时

    五、部分测试用例

    public static void main(String[] args) {
        String str = "abbxxxxzzy";  // output: {{3, 6}}
    //    String str = "abc";  // output: {}
    //    String str = "abcdddeeeeaabbbcd";  // output: {{3, 5}, {6, 9}, {12, 14}}
    
        List<List<Integer>> result = largeGroupPositions(str);
        System.out.println(result);
    }
    
  • 相关阅读:
    Ionic
    图片破碎 效果 修正
    去掉浏览器右侧动滚条宽度对页面的影响
    ng 依赖注入
    ng 通过factory方法来创建一个心跳服务
    ng 自定义服务
    ng $http 和远程服务器通信的一个服务。
    ng $interval(周期性定时器) $timeout(延迟定时器)
    ng $scope与$rootScope的关系
    函数重载
  • 原文地址:https://www.cnblogs.com/zhiyin1209/p/13227437.html
Copyright © 2011-2022 走看看