求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1。
2012-10-21 19:04
260 查看
用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1。这个是原题目的要求,本人现在水平不高,所采用了非递归的形式。递归的会在有想法后给出。下面贴上代码,共大家参考:
#include<stdio.h> #include<assert.h> int get_max_char_count(char *s,char *ret) { assert(s!=NULL); char *temp_char,*final_char,*p; int temp_count,final_count=0; p=s; while(*p!='\0') { temp_count=0; for(temp_char=p,p=p+1,temp_count=1;*p!='\0';p++) { if(*p==*temp_char) temp_count++; else break; } if(temp_count>final_count) { final_char=temp_char; final_count=temp_count; } } *ret=*final_char; return final_count; } void main() { char s[]="aabbbcccc"; int count; char c; count=get_max_char_count(s,&c); printf("%c is appeared %d times\n",c,count); }
相关文章推荐
- 用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1。
- 计算两个字符串的最大公共字串的长度,字符不区分大小写(要求计算连续最长字串的长度)
- 【codeforces 676C】 【尺取法】【从一个ab序列中最多改变k个字符找到最长的连续a子串或者b子串长度】
- 给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A
- 给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A。
- 给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A。
- 从一个ab序列中最多改变k个字符找到最长的连续a子串或者b子串长度.【尺取法】
- 409. Longest Palindrome (计算可由一个字符串中数字字符构成的最长回文数的长度)
- 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串
- 计算出一个字符串中最长的字符的长度
- 数据结构——算法之(024)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
- [leetcode]获取字符串中字符不重复的最长子串的长度
- 题目描述:给定一个字符串,求出其所有可能的字符组合. 比如:abc 其所有组合是:a,b,c,ab,ac,bc,abc
- 求两个字符串中最长连续子字符串的长度
- 【编程题目】在字符串中找出连续最长的数字串,并把这个串的长度返回
- 输入一行子串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- C++_USACO_求一个字符串的连续相同字符的最大长度
- C++怎么让函数返回固定长度字符串,比如给“zhangsan"返回原字符串加上4各空格,给“lisi"返回"lisi"加6
- 三重循环寻找最长连续字符串相加和为K值倍数的长度
- 求字符串的不重复字符的最长子串长度的问题