#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[N];
gets(a);
continueMax(a);
return 0;
}
华为oj 在字符串中找出连续最长的数字串
最新推荐文章于 2021-05-18 03:02:24 发布