统计重复字符
来源:互联网 发布:哪个网络手游装备靠打 编辑:程序博客网 时间:2024/05/16 11:40
题目内容:
输入一串字符(字符数小于80),以回车表示输入结束,编程计算并输出这串字符中连续重复次数最多的字符和重复次数。如果重复次数最多的字符有两个,则输出最后出现的那一个。
已知函数原型:
//函数功能:统计字符串中连续重复次数最多的字符及其重复的次数
//函数参数:str指向待统计的字符串,指针形参tag返回重复字符最后出现的下标位置
//函数返回值:返回字符重复的次数
int CountRepeatStr(char str[], int *tag);
求解思路:设置一个计数器,遍历字符串中的所有字符,若str[i] == str[i+1],则计数器加1,同时判断计数器的值是否大于记录的最大重复次数max,若大于,则用计数器的值更新max,并记录该字符最后出现的位置i+1.若str[i] != str[i+1],则计数器重新初始化为1。遍历结束时,函数返回max的值。
程序运行结果示例1:
Input a string:
2344455555↙
5:5
程序运行结果示例2:
Input a string:
sgf222257↙
2:4
输入提示信息:"Input a string:\n"
输入格式: 用gets()输入字符串
输出格式:"%c:%d\n"
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
时间限制:500ms内存限制:32000kb
#include <stdio.h>#include <string.h>int CountRepeatStr(char str[], int *tag);#define N 80main(){ char instr[80]; int tag=0; int max=0; printf("Input a string:\n"); gets(instr); max = CountRepeatStr(instr,&tag); printf("%c:%d\n",instr[tag],max); return 0;}CountRepeatStr(char str[], int *tag){ int i=0; int max=1; int count = 1; for(i=0;i<strlen(str);i++) { if(str[i]==str[i+1]) count++; else count=1; if(count>max) { max=count; *tag=i; } } return max;}
这个也是我学来的,希望能多多交流。
阅读全文
0 0
- 重复字符统计算法
- 统计重复字符
- 统计字符串中的无重复字符个数
- 删除并统计数组中重复的字符
- 统计一个字符串的重复字符出现的字数
- java统计字符串中重复出现字符的个数
- 统计字符串中重复的字符个数并输出
- 连续输入多个字符时统计字符重复次数的一般方法
- 实现给定一个字符串剔除重复字符,并统计各个字符出现的次数
- java统计字符串中重复【单个】字符的次数频次-使用字符数组实现
- java【通用】统计字符串中重复【单个】字符的次数频次并输出重复最多的次数和字符
- 字符统计
- 统计字符
- 统计字符
- 统计字符
- 统计字符
- 字符统计
- 字符统计
- 三点定位
- Component 抽象和重复利用
- Android微信支付notify_url参数的问题
- Android studio选择changelist(set active changelist)
- 20个常用正则表达式
- 统计重复字符
- Zookeeper可以干哪些事情
- 中兴算法挑战赛(迪杰斯特拉)
- c、c++ int 转 char*
- 虚拟机网络:桥接orNAT?
- [笔记]: RMQ算法(区间查询)
- 金蝶EAS编辑界面,去除数值控件千分符
- 《点亮ISINK三色灯》
- Linux 依赖动态库 / 静态库的动态态库 / 静态库