题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
// 新构造一个大于字符串长度一的数组arr;从末尾开始算出现数字的个数,如果当前的s[i]是数字,则arr[i] = arr[i+1]+1;然后输出arr里面最大的数count后面的count位数字
#include <stdio.h>
#include <iostream>#include <vector>
using namespace std;
int main() {
string s;
int n;
int count;
while(getline(cin,s)){
count = 0;
n = s.size();
vector<int> arr(n+1);
//cout<<n;
for(int i=n;i>=0;i--) arr[i] = 0;
for(int i = n-1;i>=0;i--){
if(s[i]>='0'&&s[i]<='9'){
arr[i] = arr[i+1]+1;
//cout<<arr[i];
if(arr[i]>count) count = arr[i];
}
}
for(int i = 0;i<n;i++){
if(arr[i]==count){
for(int j=i;j<i+count;j++) {cout<<s[j];}
continue;
}
}
cout<<','<<count<<endl;
}
}
#华为笔试#