题目描述:
读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:
一个测试输入包含1个测试用例,一个字符串str,长度不超过255。
输出描述:
在一行内输出str中里连续最长的数字串。
解题思路:
找一个存储结果的字符串res和一个临时存储遍历所给字符串temp
遍历所给字符串,利用isdigital函数判断每一位是否为数字,是则将其存放入temp里
比较temp的长度和res的长度,若temp长度大于res则更新res
代码:
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string s1;
while (getline(cin,s1))//考虑输入有空格的情况
{
int i = 0;
string res;
while (i < s1.size())
{
if (isdigit(s1[i]) != 0)
{
string tmp;
while (isdigit(s1[i]) != 0 && i<s1.size())
{
tmp += s1[i];
i++;
}
if (tmp.size()>res.size())
{
res = tmp;
}
}
i++;
}
cout << res << endl;
system("pause");
}
return 0;
}
代码:
int main()
{
string str, res, cur;
cin >> str;
for (int i = 0; i <= str.length(); i++)
{
// 数字+=到cur
if (isdigit(str[i]))
{
cur += str[i];
}
else
{
// 找出更长的字符串,则更新字符串
if (res.size() < cur.size())
{
res = cur;
}
cur.clear();
}
}
cout << res;
return 0;
}
题目来源:牛客网