zoukankan      html  css  js  c++  java
  • Positions of Large Groups

    In a string S of lowercase letters, these letters form consecutive groups of the same character.

    For example, a string like S = "abbxxxxzyy" has the groups "a""bb""xxxx""z" and "yy".

    Call a group large if it has 3 or more characters.  We would like the starting and ending positions of every large group.

    The final answer should be in lexicographic order.

    Example 1:

    Input: "abbxxxxzzy"
    Output: [[3,6]]
    Explanation: "xxxx" is the single large group with starting  3 and ending positions 6.
    

    Example 2:

    Input: "abc"
    Output: []
    Explanation: We have "a","b" and "c" but no large group.
    

    Example 3:

    Input: "abcdddeeeeaabbbcd"
    Output: [[3,5],[6,9],[12,14]]

    Note:  1 <= S.length <= 1000

    Solution: Keep a variable to avoid boundary checking. 

    class Solution {
        public List<List<Integer>> largeGroupPositions(String S) {
            int left = 0, right = 0, n = S.length();
            char current = 'A';
            
            List<List<Integer> > result = new ArrayList<List<Integer> >();
            while (right < n) {
                while (right < n && S.charAt(right) == current) {
                    right++;
                }
                
                if (right - left >= 3) {
                    List<Integer> temp = new ArrayList<>();
                    temp.add(left);
                    temp.add(right - 1);
                    result.add(temp);
                }
                
                left = right;
                right = left;
                if (left < n) {
                    current = S.charAt(left);
                }
            }
            
            return result;
        }
    }
  • 相关阅读:
    【FZYZOJ】细菌 题解(最短路)
    oracle 开发 第02章 查询
    oracle 开发 第01章 简介
    rhel配置163、epel、rpmforge的yum源
    linux 手动清除缓存
    查看linux内核版本和发行版本
    linux下安装rlwrap
    linux下安装vncserver
    Nagios 安装
    linux mutt发送报表
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/9065560.html
Copyright © 2011-2022 走看看