华为OJ(在字符串中找出连续最长的数字串)
2015-08-16 20:03
375 查看
题目:在字符串中找出连续最长的数字串
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
对于空串或不包含数字的字符串,输出0
输入:abcd12345ed125ss123456789
输出:123456789,9
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
对于空串或不包含数字的字符串,输出0
输入:abcd12345ed125ss123456789
输出:123456789,9
#include<iostream> #include<string> using namespace std; const int N=200; unsigned int continumax(char*,char*); int main() { char inputstr ,outputstr ; gets(inputstr); int num=continumax(inputstr,outputstr); if(num) { for(int i=0;i<num;i++) cout<<outputstr[i]; cout<<","; } cout<<num<<endl; //system("pause"); return 0; } unsigned int continumax(char * inputstr,char* outputstr) { int len=strlen(inputstr); int flag=1,cnt=0,max=0,index; for(int i=0;i<len;i++) { if(isdigit(inputstr[i])) { flag=1; cnt++; if(cnt>max) { max=cnt; index=i; } } else if(!isdigit(inputstr[i])) { flag=0; cnt=0; } } for(int i=0;i<max;i++) outputstr[max-1-i]=inputstr[index-i]; return max; }
相关文章推荐
- Java心得14
- 递归实现汉诺塔问题(python)
- hdu 2896
- 让linux每天定时备份MySQL数据库并删除五天前的备份文件
- 20个高级Java面试题汇总
- hibernate之增删改查demo
- 《Java设计模式》之外观模式
- 回溯--迷宫问题
- 【译】Android主题动态切换开源库Prism基本原理1-核心库
- 总结篇(1)——机房收费系统
- 9个Java初始化和回收的面试题
- 存储过程
- java面向对象程序设计:对象
- 清华建筑系毕业生工作8年后心得总结
- 写出高性价比代码之C#建议第52-及时释放资源
- Gym - 100637A Nano alarm-clocks 模拟
- HDU 1060 Leftmost Digit(数学)
- linux中文件搜索相关的locate,find,whereis与which,grep的使用
- ZOJ 1654 Place the Robots (二分匹配 )
- sizeof 操作符详解