题解 | #字符串中找出连续最长的数字串#
字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/bd891093881d4ddf9e56e7cc8416562d
#include <cctype> #include <csetjmp> #include <iostream> #include <vector> using namespace std; int main() { string s; cin>>s; int n = s.size(); vector<int> dp(n+1,0); s = ' '+s; pair<int,int> max_len; for (int i=1; i< n+1;i++) { if(isdigit(s[i]) && !isdigit(s[i-1])){ dp[i] = 1; }else if (isdigit(s[i]) && isdigit(s[i-1])) { dp[i] = dp[i-1] + 1; }else { dp[i] = 0; } if (dp[i]>max_len.first) { max_len.first = max(max_len.first,dp[i]); max_len.second = i; } } string t = s.substr(max_len.second-max_len.first+1,max_len.first); cout << t<< endl; } // 64 位输出请用 printf("%lld")