题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
细节很重要,哎,输出细节处理了半天
#include <string>
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
string s;
int num = 0;
bool flag = false;
int main() {
while (cin >> s) {
vector<vector<string>>result(100);
for (int i = 0; i < s.size(); i++)
{
if (s[i] >= '0' && s[i] <= '9') { num++; flag = true; }
else if (flag && (s[i] < '0' || s[i]>'9')) {
string ss = s.substr(i - num, num);
result[ss.length()].push_back(ss);
num = 0;
flag = false;
}
}
if (flag && (s[s.size() - 1] >= '0' && s[s.size() - 1] <= '9')) {
string ss = s.substr(s.size() - 1 - num + 1, num);
result[ss.length()].push_back(ss);
num = 0;
flag = false;
}
int n = result.size();
int size;
for (int i = n-1; i >= 0; i--) {
if (result[i].size() ==0)continue;
else {
size = result[i][0].size();
for (int j = 0; j < result[i].size(); j++)
{
cout << result[i][j];
}
cout << ',';
cout << size << endl;
break;
}
}
}
return 0;
}
