/*
2.求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)
*/
void GetMaxIncreNum(char *str)
{
int max=numeric_limits<int>::min();
int count=0;
int start=-1,end=-1;
int len=strlen(str);
int maxlen=0,maxstart=0;
for(int i=0;i<len;i++)
{
if(str[i]>='0'&&str[i]<='9')
{
int num=str[i]-'0';
if(start==-1)
start=i;
if(num>max)
{
max=num;
count++;
}
else
{
if(count>maxlen)
{
maxlen=count;
maxstart=start;
}
max=numeric_limits<int>::min();
count=0;
start=-1;
}
}
else
{
if(start>=0)
{
if(count>maxlen)
{
maxlen=count;
maxstart=start;
}
max=numeric_limits<int>::min();
count=0;
start=-1;
}
}
}
cout<<"max increase substr len : "<<maxlen<<endl;
cout<<"max increase substr start from : "<<maxstart<<endl;
int k=maxstart,c=0;
while(c<maxlen)
{
cout<<str[k];
k++;
c++;
}
}
void GetMaxIncreNumTest()
{
char str[]="ads3sl456789DF3456ld345AA";
cout<<"str : "<<str<<endl;
GetMaxIncreNum(str);
}
微软等数据结构+算法面试100题(15)--求最大连续递增数字串
最新推荐文章于 2022-03-06 00:00:00 发布