题目17
给定一个字符串
只包含大写字母
求在包含同一字母的子串中
长度第K长的子串
相同字母只取最长的子串
输入
第一行
一个子串 1<len<=100
只包含大写字母
第二行
为k的值
输出
输出连续出现次数第k多的字母的次数
例子:
输入
AABAAA
2
输出
1
同一字母连续出现最多的A 3次
第二多2次 但A出现连续3次
输入
AAAAHHHBBCDHHHH
3
输出
2
如果子串中只包含同一字母的子串数小于k 则输出-1
<?php $s=fgets(STDIN); $k=fgets(STDIN); solution($s,$k); function solution($s,$k) { $char=str_split($s,1); if (count($char)==0){ echo -1; return; } $cur=$char[0]; $count=1; $map[$cur]=$count; for ($i=1;$i<count($char);$i++){ $c=$char[$i]; if($c==$cur) $count++; else{ $cur=$c; $count=1; } $map[$cur]=isset($map[$cur])? $map[$cur]>$count?$map[$cur]:$count :$count; } rsort($map); if($k>count($map)){ echo -1; return; } echo $map[$k-1]; }

浙公网安备 33010602011771号