Leetcode PHP题解--D120 830. Positions of Large Groups

码农天地 -
Leetcode PHP题解--D120 830. Positions of Large Groups
D120 830. Positions of Large Groups题目链接

830. Positions of Large Groups

题目分析

给定一个字符串,返回相同字母连续出现次数超过3次的始末值。

解决思路

我采用的是,先放进数组,连续则递增结束的下标。若遇到不同字母,则先判断上一个字母的终点下标减起始下标是否小于3则删除,大于等于3则保留。

在for循环外再判断一次最后一对下标是否也符合要求。因为之前是在当遇到不同字母时判断的,若测试样例中只出现了同一个字符,那么就进不去判断长度的代码中。

最终代码
<?php
class Solution {

    /**
     * @param String $S
     * @return Integer[][]
     */
    function largeGroupPositions($S) {
        $largeGroup = [[0,0]];
        $S = str_split($S);
        $prev = "";
        $index = 0;
        foreach($S as $k => $v){
            $cur = $largeGroup[$index];
            if($v == $prev){
                $cur[1]++;
                $largeGroup[$index] = $cur;
            }
            else{
                if($cur[1]-$cur[0]<2){
                    $largeGroup[$index] = [$k,$k];
                }
                else{
                    $index++;
                    $largeGroup[] = [$k, $k];
                }
            }
            
            $prev = $v;
        }
        if($largeGroup[$index][1]-$largeGroup[$index][0]<2){
            unset($largeGroup[$index]);
        }
        return $largeGroup;
    }
}

若觉得本文章对你有用,欢迎用爱发电资助。

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

leetcodephp

扩展阅读

加个好友,技术交流

1628738909466805.jpg