Fork me on GitHub

给定一个字符串,返回字符串中相邻的字符个数大于等于2的记录数

这道题是在博客园看到的。

问题:

比如给定一个字符串,返回字符串中相邻的字符个数大于等于2的记录数,比如aaa,算1个记录,aaabb,算2个记录,
abbccaaa,算3个记录, aaabbbcccefffghhh,算5个记录.

 

思路:

循环遍历字符串,当前字符跟上一个字符比较;

如果相同字符数加一;

如果不相同,判断当前字符相同数是否大于1,大于1记录数加1,重置相同字符数累加器为1;

 

代码(PHP实现):

<?php
$str = 'abcdefgeeesffsfddsswesdfsadfssdddaa';
$prevChar = '';
$currentChar = '';
$currentCharCnt = 1;
$recordCnt = 0;
for ($i = strlen($str) - 1; $i >= 0; $i--){
    $currentChar = $str{$i};
    if ($currentChar === $prevChar){
        $currentCharCnt++;
    }else{
        if($currentCharCnt >= 2){
            $recordCnt++;
        }
        $currentCharCnt = 1;
    }
    $prevChar = $currentChar;
}
echo $recordCnt, "\n";

 

posted @ 2012-08-29 18:47  huan&ping  阅读(552)  评论(0编辑  收藏  举报