在字元串中找出連續最長的數字串
在字元串中找出連續最長的數字串
時間限制:3秒
空間限制:32768K
題目描述
請一個在字元串中找出連續最長的數字串,并把這個串的長度傳回;如果存在長度相同的連續數字串,傳回最後一個連續數字串;
注意:數字串隻需要是數字組成的就可以,并不要求順序,比如數字串“1234”的長度就小于數字串“1359055”,如果沒有數字,
則傳回空字元串(“”)而不是NULL!(說明:不需要考慮負數)
輸入描述 :
字元串輸出描述:
連續數字串&在所有數字串最長的長度
示例1
輸入
abcd12345ed125ss123058789
輸出
123058789
9
源碼
/********************************************************************************************
在字元串中找出連續最長的數字串
時間限制:3秒
空間限制:32768K
題目描述
請一個在字元串中找出連續最長的數字串,并把這個串的長度傳回;如果存在長度相同的連續數字串,傳回最後一個連續數字串;
注意:數字串隻需要是數字組成的就可以,并不要求順序,比如數字串“1234”的長度就小于數字串“1359055”,如果沒有數字,
則傳回空字元串(“”)而不是NULL!(說明:不需要考慮負數)
輸入描述 :
字元串輸出描述:
連續數字串&在所有數字串最長的長度
示例1
輸入
abcd12345ed125ss123058789
輸出
123058789
9
********************************************************************************************/
#include <iostream>
#include <string>
using namespace std;
int main()
{
string srt = { "abcd155555555555552345ed125ss123058789" };
int len_max = 0;
int len0 = 0;
int index = 0;
for (int i = 0; i < srt.size(); i++)
{
if (srt[i] >= '0'&& srt[i] <= '9')
{
len0++;
if (len0 > len_max)
{
index = i;
len_max = len0;
}
}
else
{
len0 = 0;
}
}
index = index- len_max+1;
for (int i = index; i < index+ len_max; i++)
{
printf("%c", srt[i]);
}
if (len_max == 0)
{
printf("數字字元串為空\n");
printf(" ");
}
printf("\n");
printf("len_max=%d", len_max);
printf("len_max=%d", len_max);
}