您的位置:首页 > 其它

华为oj 在字符串中找出连续最长的数字串

2015-11-25 21:06 465 查看
#include<iostream>
#include<string.h>
#define N 1000
using namespace std;

void continueMax(char *p)
{

if(!strlen(p))
{
cout<<"0"<<endl;
}
else
{
int max = 0;
char *q = p;
bool flag = false;
int count = 0;
char *temp = p;
while(*p != '\0')
{
if(isdigit(*p)&&flag) //进入连续数字计数阶段
{
++count;
}
else if(!isdigit(*p)&&flag)  //已经离开连续数字区域
{
flag = false;
if(max<count)
{
max = count;
q = temp;
}
count = 0;
}
else if(isdigit(*p)&& !flag) //开始进入连续数字计数阶段
{
flag = true;
temp = p;
if(!count)
++count;
}
//还未遇到连续数字
//cout<<"now:"<<*p<<" "<<flag<<"count:"<<count<<"max:"<<max<<"temp"<<*temp<<endl;
++p;
}

if(count>max)
{
max = count;
q = temp;
}

if(!max)
{
cout<<"0"<<endl;
}
else
{
int i = 0;
for(;i<max;i++)
{
if(*q != '\0')
{
cout<<*q;
q++;
}
}
cout<<","<<max<<endl;
}
}
}

int main()
{
char a
;
gets(a);
continueMax(a);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: