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开发领域。