题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string s;
vector<string> result;
while(cin >> s){//多组输入
result.clear();//每次输入都清空
int maxlen=0;//记录最长数字串的长度
for(int i=0;i<s.size();++i){//利用for循环跳过字母
if(s[i]<='9'&&s[i]>='0'){
int j=i;//双指针,找数字串的结尾
while(j<s.size()&&s[j]<='9'&&s[j]>='0'){
++j;
}
if(j-i>maxlen){//若更长,则清空结果数组
result.clear();
result.push_back(s.substr(i,j-i));
maxlen=j-i;
}
else if(j-i==maxlen){//一样长,则压入数据
result.push_back(s.substr(i,j-i));
}
i=j;
}
}
for(int i=0;i<result.size();++i)
cout << result[i];
cout << ',' << maxlen << endl;
}
}
// 64 位输出请用 printf("%lld")