题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
#include <cstring>
#include <iostream>
#include<vector>
using namespace std;
int main() {
string s;
while(cin >> s)
{
vector<pair<int, string>> res;
int map[201] = {0};
int max_len = 0;
int len = s.length();
if(len == 1) cout << s << 1 << endl;
int i = 0, j = 0;
while(i < len && j < len)
{
while(!(s[i] >= '0' && s[i] <= '9')) i++;
j = i;
while(s[j] >= '0' && s[j] <= '9') j++;
res.push_back(make_pair(j-i, s.substr(i,j-i)) );
map[j-i]++;
i = j;
}
for(int i = 200; i >= 0; --i)
if(map[i] != 0){
max_len = i;
break;
}
int cnt = map[max_len];
for(int i = 0; i < res.size(); ++i) if(res[i].first == max_len) cout << res[i].second;
cout << "," << max_len << endl;
}
}
// 64 位输出请用 printf("%lld")