给定一个字符串,返回字符串中相邻的字符个数大于等于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";
作者:WadeYu
出处:http://www.cnblogs.com/wadeyu/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/wadeyu/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。