您的位置:首页 > 编程语言

华为2018秋招编程题1:在字符串中找出连续最长的数字串

2017-09-07 11:44 399 查看

题目描述

在字符串中找出连续最长的数字串,并把这个串的长度返回。如果存在长度相同的连续数字串,返回最后一个连续数字串。

注意:数字串只需要是数字组成的就可以,并不需要顺序,比如数字串“1234”的长度小于数字串“1359055”,如果没有数字,则返回空字符串而不是NULL!(说明:不需要考虑负数)

输入描述

字符串

输出描述

连续数字串&在所有数字串最长的长度

示例

输入

abcd12345ed125ss123058789

输出

1230558789

9

代码(75%)

题目中没有明确说明,在空串的时候应该怎么输出,猜测是这个问题。

#include <iostream>
#include <string>
int main() {
string str;
while (cin >> str) {
int max = 0;
string tmp;
string res;
for (int i = 0; i < str.size(); ++i) {
if (str[i] >= '0' && str[i] <= '9') {
tmp += str[i];
while (str[i+1] >= '0' && str[i+1] <= '9') {
i++;
tmp += str[i];
}
if (tmp.size() > max) {
max = tmp.size();
res = tmp;
} else if (tmp.size() == max) {
res = tmp;
}
}
tmp.clear();
}
cout << res << "," << max << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  模拟 华为