题目描述
幼儿园的小朋友们一直在研究一个问题—— 如何在一个长长的句子中找到最大的那个非负整数(不存在负数)。你很不幸的被他们拖住了,又很不幸的被他们叫去执行这个任务,你非常得不爽! 因为你觉得这么简单的问题简直侮辱了你的智商,所以你决定写一个程序来代劳。
输入
输入有多组数据。每组输入一个句子(一定包含数字字符,可能包含空格),长度小于256,占一行
输出
输出对应有多行,每行输出所找出的最大的那个非负整数
样例输入 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#f5f5f5">&&12345aBsdDkjie64skjd5lk
3*2&&0%%%00B58CD000000b
a000b0000000c000
</span></span></span></span></span>
样例输出 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#f5f5f5">12345
58
0</span></span></span></span></span>
思路:要注意前导零的问题,可以先求长度,如果长度相同就用字符串来比较大小
#include<iostream>
using namespace std;
#include<string.h>
int main()
{
string a;
while(getline(cin,a))
{
string max="0";
for(int i=0;i<a.size();i++)
{
if(a[i]>'0'&&a[i]<='9')
{
string b;
while(a[i]>='0'&&a[i]<='9')
{
b+=a[i++];
}
if(b.size()>max.size()||(b.size() ==max.size()&&b>max))
max=b;
}
}
cout<<max<<endl;
}
return 0;
}