题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
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")