给定一个字符串,返回字符串中相邻的字符个数大于等于2的记录数
2012-08-29 18:47
357 查看
这道题是在博客园看到的。
问题:
比如给定一个字符串,返回字符串中相邻的字符个数大于等于2的记录数,比如aaa,算1个记录,aaabb,算2个记录,
abbccaaa,算3个记录, aaabbbcccefffghhh,算5个记录.
思路:
循环遍历字符串,当前字符跟上一个字符比较;
如果相同字符数加一;
如果不相同,判断当前字符相同数是否大于1,大于1记录数加1,重置相同字符数累加器为1;
代码(PHP实现):
问题:
比如给定一个字符串,返回字符串中相邻的字符个数大于等于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";
相关文章推荐
- 解 “一家外包公司面试记录”之“字符串中相邻的字符个数大于等于2的记录数”
- 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
- 给定一个字符串和一个整数k,对字符串开头算起的每2k个字符的前k个字符进行反转。 如果还有少于k个字符,则将其全部撤消。 如果小于2k但大于或等于k个字符,则反转前k个字符,
- 确定字符互异 确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代
- 链表分割 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前 给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以
- 给定一个字符串s由大小写字母和空白字符组成,返回字符串中最后一个字的长度。 如果最后一个字不存在,则返回0。
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代
- 给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串
- 请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。 给定一个string
- 给定一个字符串列表,找出单词中最长单词,可以用l列表中的其他单词一次构建一个字符。返回具有最小字典顺序的最长单词。
- 将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于等于2)有返回1,无返回0
- 如果字符串的一个子串(其长度大于 1)的各个字符均相同,则称之为等值子串。试设计一算法,求出串S中的最大等值子串 函数返回最大等值子串的长度,如果没有则返回1。 例如: 若S= “abc123abc1
- 常量指针 给定一个字符串,在目标字符串中查找任意字符的第一个字符,返回指针
- 空格替换 请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。 给定一
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。 给定一个stri
- 对于给定的一个字符串,统计其中数字字符出现的次数。输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
- 给定一个字符串,求第一个不重复的字符
- 编写一个函数,它在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符
- 编写函数strndel,参量是一个字符串string和两个整数start、length。在string中删除start开始的length个字符,最后返回string。