编程题——字符串中找出连续最长的数字串


编程题——字符串中找出连续最长的数字串


题目描述:
读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:
个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串。

示例
输入
abcd12345ed125ss123456789
输出
123456789


程序代码如下:



#include 
#include 
using namespace std;

/*str1读取输入,str临时存储,MaxNum存储最长。
 *遍历str1:
 *	当读到数字时保存到str2
 *	读到非数字时判断是否为当前最长
 *		如果是则MaxNum=str2
 *		否则清空str2*/
int main()
{
	string str1,str2,MaxNum;
	getline(cin, str1);
	for (int i = 0; i <= str1.size(); ++i)//这里要注意是<=,因为最长数字串可能在末尾,需要再向后到非数字来更新MaxNum
	{
		if (str1[i] >= '0' && str1[i] <= '9')
			str2 += str1[i];
		else
		{
			if (str2.size() > MaxNum.size())
				MaxNum = str2;
			else
				str2.clear();
		}
	}
	cout << MaxNum << endl;
	return 0;
}


程序运行结果如下:


编程题——字符串中找出连续最长的数字串_第1张图片

你可能感兴趣的:(算法,编程题de世界)