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);
    }
    
  • 相关阅读:
    Linux 笔记
    查看 Linux 系统版本信息
    在网站中添加 https 百度分享
    Linux 中 Xampp 的 https 安全证书配置
    Windows 笔记
    Linux 笔记
    CentOS7 自定义登录前后欢迎信息
    构建器内部的多形性方法的行为
    编译dubbo项目方法
    《Thing in java》多态
  • 原文地址:https://www.cnblogs.com/zhiyin1209/p/13227437.html
Copyright © 2011-2022 走看看