题解 | #在字符串中找出连续最长的数字串#
在字符串中找出连续最长的数字串
https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec
#include <stdio.h> #include <string.h> int main() { char s[201]={0}; while(scanf("%s",s)!=EOF) { int len=strlen(s); int dp[len]; memset(dp,0,sizeof(dp)); if(s[0]>='0'&&s[0]<='9') dp[0]=1; else dp[0]=0; for(int i=1;i<len;i++) { if(s[i]>='0'&&s[i]<='9') dp[i]=dp[i-1]+1; else dp[i]=0; } int max=0; int p=0; for(int i=0;i<len;i++) { if(dp[i]>max) max=dp[i]; } char result[201]={0}; int flag=0; for(int i=0;i<len;i++) { if(dp[i]==max) { strncpy(result+max*flag,s+i-max+1,max); flag++; } } printf("%s,%d\n",result,max); } return 0; }