题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
#include <bits/stdc++.h> using namespace std; int main() { string s = ""; while(cin >> s){ vector<pair<string, int>> res; int right = 0; int maxLength = INT_MIN; for(int i = 0; i < s.size(); i++){ if(isdigit(s[i])){ right = i; while(right < s.size() && isdigit(s[right])){ right++; } if(right - i> maxLength){ string tmp = s.substr(i, right - i); res.clear(); res.push_back(make_pair(tmp, tmp.size())); maxLength = right - i; } else if(right - i == maxLength){ string tmp = s.substr(i, right - i); string str = res[0].first + tmp; res.clear(); res.push_back(make_pair(str, tmp.size())); } i = right; } } //输出 for(auto iter = res.begin(); iter != res.end(); iter++){ cout << iter->first << "," << iter->second << endl; } } }
华为题库题解 文章被收录于专栏
牛客华为题库的题解